安装包瘦身

2018-10-06  本文已影响11人  orilme

App安装包(ipa文件)是由资源(图片+文档)和可执行文件(二进制文件)两部分组成,安装包瘦身也是从这两部分进行。

1. 资源文件优化(主要指图片资源)

2. 代码优化

3. Xcode编译选项优化:

(1)配置编译选项
(Levels选项内)Generate Debug Symbols 设置为NO,这个配置选项应该会让你减去小半的体积。注意这个如果设置成NO就不会在断点处停下;
(2)编译器优化级别
Build Settings->Optimization Level有几个编译优化选项,release版应该选择Fastest, Smalllest[-Os],这个选项会开启那些不增加代码大小的全部优化,并让可执行文件尽可能小。
(3)去除符号信息
Strip Debug Symbols During Copy 和 Symbols Hidden by Default 在release版本应该设为yes,可以去除不必要的调试符号。Symbols Hidden by Default会把所有符号都定义成”private extern”,设了后会减小体积。
(4)Strip Linked Product:DEBUG下设为NO,RELEASE下设为YES,用于RELEASE模式下缩减app的大小;
(5)编译器优化,去掉异常支持。Enable C++ Exceptions、Enable Objective-C Exceptions设置为NO,Other C Flags添加-fno-exceptions

解释:
Generate Debug Symbols:这个设置在DEBUG和RELEASE下均默认为YES。调试符号是在编译时生成的。
在Xcode中查看构建过程,可以发现,当Generate Debug Symbols选项设置为YES时,每个源文件在编译成.o文件时,编译参数多了-g和-gmodules两项。但链接等其他的过程没有变化。
当Generate Debug Symbols设置为YES时,编译产生的.o文件会大一些,当然最终生成的可执行文件也大一些。
当Generate Debug Symbols设置为NO的时候,在Xcode中设置的断点不会中断。但是在程序中打印[NSThread callStackSymbols],依然可以看到类名和方法名.
Strip Linked Product:设为NO,在Xcode中设置的断点不会中断。
配置具体解释

文章推荐:
干货|今日头条iOS端安装包大小优化

上一篇 下一篇

猜你喜欢

热点阅读