iOS之开发的SDK(.framework)瘦身

项目需求:最近开发的SDK,要提供给公司其他部门使用,但是开发后的.framework的大小为12M。但是某程APP不愿意,说包太大,要瘦身。所以,只能网上找资料。下面说说我的的做法,亲测试可以的。

一、set Generate Debug Symbols to NO

make sure that you set Generate Debug Symbols to NO in your build settings. This can reduce the size of your static library by about 30%.
In your target's build settings look for 'Optimization Level'. By switching that to 'Fastest, Smallest -Os' you'll permit the compiler to sacrifice some speed for size.

(1)、设置Generate Debug Symbols 为NO。可以减少30%左右的体积,所以这个选项很重要。

Generate Debug Symbols 为NO.png

(2)、设置Optimization Level下的Release模式为:Fastest,Smallest[-Os] 。这是Xcode上默认的,但我们要知道,意思是开启不增加代码大小的全部优化,并让可执行文件尽可能小。

设置Optimization Level.png

经过上面的设置,我的.framework有12M减到了8M。

二、删除无用代码

设置Dead Code Stripping为YES,去掉冗余代码即代码被定义但未被使用。

设置Dead Code Stripping为YES.png

三、删除不必的指令集

我原来在Architectures中加入了armv7s。现在我将armv7s删除,重新编译,可以减少三分之一的体积。framework包由原来的1.8M减到1.2M。

指令集:armv6 : iPhone,iPhone2,iPhone3G,第一代和第二代iPod Touch; armv7:iPhone4,iPhone4S; armv7s:iPhone5,iPhone5C; arm64:iPhone5S

指令集是向下兼容的,所以设置了armv7是可以在armv7s的设备上运行的。

设置指令集.png

四、删除framework中无用mach

(注:该方法没试过,不过该方法是可信的)

点击打开链接

五、ipa缩小文件体积

点击打开链接

补充:

1、LinkMap分析类模块大小
2、LinkMap下载
3、iOS APP安装包瘦身实践(无用资源检测工具、图片压缩工具)
4、组件化-动态库实战(动态库共享ipa瘦身)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (原文:How to Create a Framework for iOS 作者:Sam Davies 译者:Mr...
    王宪岭阅读 4,983评论 3 23
  • (原文:How to Create a Framework for iOS作者:Sam Davies 译者:Mr_...
    Yaanco阅读 2,405评论 4 5
  • 如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实现细节...
    小热狗阅读 3,510评论 3 9
  • 关于 动态库 & 静态库 ,参考下面文章:iOS开发关于"框架"的那些事iOS 静态库,动态库与 Framewor...
    曦风兮阅读 1,469评论 2 2
  • 前几天,三家一起把餐厅隔出来做成书房,是同一个师傅,板子也混一起用了,做到最后一家是时少了半块板子,商量怎么处理,...
    阳光洒洒阅读 133评论 0 0