静态库瘦身(只支持armv7 和 arm64)

信息介绍:

arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)

armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)

armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4

i386是针对intel通用微处理器32位处理器

x86_64是针对x86架构的64位处理器

模拟器32位处理器测试需要i386架构,
模拟器64位处理器测试需要x86_64架构,
真机32位处理器需要armv7,或者armv7s架构,
真机64位处理器需要arm64架构。

1、静态库处理

通过lipo工具可以查看第3方库的支持的指令集,比如查看IJKMediaFramework.framework

 lipo -info /Users/lmy/Desktop/test/IJKMediaFramework.framework/IJKMediaFramework 

输出:

Architectures in the fat file: /Users/lmy/Desktop/test/IJKMediaFramework.framework/IJKMediaFramework are: armv7 i386 x86_64 arm64

可以看到,此静态库支持armv7 、i386 、x86_64 、arm64 。
为了打包是app瘦身, 可以去掉i386 、x86_64 这两个模拟器指令集。如果有armv7s,也可以删了。因为armv7可以兼容armv7s,armv7s,只保留armv7和arm64。

第1步:生成只支持armv7:
lipo /Users/lmy/Desktop/test/IJKMediaFramework.framework/IJKMediaFramework -thin armv7 -output /Users/lmy/Desktop/test/IJKMediaFramework_v7
第2步:生成只支持arm64:
lipo /Users/lmy/Desktop/test/IJKMediaFramework.framework/IJKMediaFramework -thin arm64 -output /Users/lmy/Desktop/test/IJKMediaFramework_arm64
第3步:合并armv7+ arm64:
lipo -create /Users/lmy/Desktop/test/IJKMediaFramework_v7 /Users/lmy/Desktop/test/IJKMediaFramework_arm64 -output /Users/lmy/Desktop/test/IJKMediaFramework

或者,cd到这个目录下,去使用命令,如下所示:

cd /Users/lmy/Desktop/test 

lipo -create IJKMediaFramework_v7 IJKMediaFramework_arm64 -output IJKMediaFramework

查看目录下所有文件:

ls -ll

total 479776
-rwxr-xr-x 1 lmy staff 122819960 10 31 14:32 IJKMediaFramework
drwxr-xr-x@ 6 lmy staff 192 10 25 15:27 IJKMediaFramework.framework
-rwxr-xr-x 1 lmy staff 62371760 10 25 15:27 IJKMediaFramework_arm64
-rwxr-xr-x 1 lmy staff 60448152 10 25 15:27 IJKMediaFramework_v7

总结:
原来IJKMediaFramework.framework里面的IJKMediaFramework是185M。
armv7的大小是:60M
arm64的大小是:62.4M
armv7+arm64合并之后文件大小是:122.8M

你可能感兴趣的:(静态库瘦身(只支持armv7 和 arm64))