安装包瘦身
在上一篇启动优化中,有分析过项目中所有的代码、资源都在XX.app
包里面,将来Xcode会将这个XX.app
包压缩成一个ipa文件,然后上传到AppStore
提供给用户下载,如果项目越来越大,那么这个ipa文件就会越来越大。
为了给安装包(IPA)
瘦身,我们就要知道安装包有哪些文件组成:
安装包(IPA)
主要由可执行文件、资源组成。
安装包瘦身方式:
-
对于资源(图片、音频、视频等)
- 采取无损压缩
- 去除没有用到的资源:https://github.com/tinymind/LSUnusedResources
-
对于可执行文件:
- 编译器优化
Strip Linked Product
、Make Strings Read-Only
、Symbols Hidden by Default
设置为YES
(现在的项目已经默认为YES
了,一些老项目可能还会为NO
)
2.去掉异常支持
Enable C++ Exceptions
、Enable Objective-C Exceptions
设置为NO
,Other C Flags
添加-fno-exceptions
3.利用AppCode(https://www.jetbrains.com/objc/)检测未使用的代码
菜单栏 -> Code -> Inspect Code
4.编写
LLVM
插件检测出重复代码、未被调用的代码(这种方式比较高级也比较难)5.生成
LinkMap
文件,可以查看可执行文件的具体组成,如下图: - 编译器优化
如果项目比较大,分析LinkMap
文件就会比较麻烦,我们可以借助第三方工具解析LinkMap
文件:https://github.com/huanxsd/LinkMap
它其实是个Mac
项目,我们下载下来,运行项目 -> 选择文件 -> 点击开始,就能显示每个文件占用多大,我们就能根据文件有目的性的进行优化。如下图:
贴一个安装包瘦身的实践方案:iOS安装包瘦身 - 全部实测