随着App的不断迭代,文件图片的不断增加导致ipa包的增大。那怎么减少ipa包的大小呢?从网络找到一些优化方法,记录一下以便以后使用!
1.删除无用文件
- 使用 WHC_Scan 搜索未使用的类
选择项目目录后等待搜索完毕,找到对应没有使用的类,删除即可。
- 使用 LSUnusedResources 搜索未使用图片
搜完完毕后选择图片点击delete
删除即可。
2. Xcode设置
- Generate Debug Symbols 设置
- VALID_ARCHS 舍去 armv7 架构
Xcode12已移除VALID_ARCHS选项。 armv7用于4和4s 完全可以去掉。
- DEAD_CODE_STRIPPING设置为YES (Xcode默认设置)
- Optimization Level编译优化选项
release选择Fastest, Smalllest[-Os] (Xcode默认设置)
- Strip Debug Symbols During Copy、Symbols Hidden by Default、Strip Linked Product 参考 Xcode中和symbols有关的几个设置
debug设置为NO,release设置为YES
用了以上方法自测ipa减少了30兆左右。
附:提高编译速度
mac老旧,项目巨大。每次编译时间都特别久!
- Debug Information Format
debug设置为DWARF,release设置为DWARF with dSYM File
这一项设置的是是否将调试信息加入到可执行文件中,改为DWARF后,如果程序崩溃,将无法输出崩溃位置对应的函数堆栈,但由于Debug模式下可以在XCode中查看调试信息,所以改为DWARF影响并不大。这一项更改完之后,可以大幅提升编译速度
- Build Active Architecture Only
debug设置为YES,release设置为NO
这一项设置的是是否仅编译当前架构的版本,如果为NO,会编译所有架构的版本。需要注意的是,此选项在Release模式下必须为YES,否则发布的ipa在部分设备上将不能运行。这一项更改完之后,可以显著提高编译速度。
- 提高XCode编译时使用的线程数
defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4
XCode默认使用与CPU核数相同的线程来进行编译,但由于编译过程中的IO操作往往比CPU运算要多,因此适当的提升线程数可以在一定程度上加快编译速度。