iOS项目优化-APP瘦身

前言

由于在上家创业公司被现在的公司收购,最终把两个APP融合成一个APP,当时只是把代码进行复制黏贴,后面一直在做开发,急着上线功能,所以我也没有对APP进行优化。项目打包之后ipa包的大小是一百多兆,下载时间太长,年初比较闲,决定来优化安装包,结合其他开发者的优化方法进行瘦身,最终变成80兆。

1、配置编译选项 

(Levels选项内)Generate Debug Symbols  设置为NO,这个配置选项应该会让你减去小半的体积。注意这个如果设置成NO断点不生效。

2、舍弃架构armv7

armv7用于支持4s和4,现在的使用率极低,完全可以舍弃了。

3、去除无用的三方库、代码、图片

4、图片处理

项目中的图标文件是被小伙伴们直接放在工程目录下面的,里面有1x、2x和3x的图片,当然打包的时候这些文件也都被打包进去了。我这里做的就比较简单了我把图片放在Xcode自带的图片管理工具里面Images.scasssets,这样的好处就是打包的资源包中的图片会被放到Assets.car.图片有被压缩;此时若用[[NSBundle MainBundle] pathForResource:  ofType: ]来访问时访问不到的。同时你也无法像平常一样轻易的拿到被人的图片资源了,不用再为多像素的图片命名。mages.xcassets会自动的排列不同像素的图片。
5、编译器优化级别

Build Settings->Optimization Level有几个编译优化选项,release版应该选择Fastest, Smalllest[-Os],这个选项会开启那些不增加代码大小的全部优化,并让可执行文件尽可能小。

6、可执行文件瘦身

LinkMap文件是Xcode产生可执行文件的同时生成的链接信息,用来描述可执行文件的构造成分,包括代码段(__TEXT)和数据段(__DATA)的分布情况。只要设置Project->Build Settings->Write Link Map File为YES,build完后就可以在设置的路径看到LinkMap文件了。

我们可以用脚本从linkmap中统计出每个.o目标文件占用的体积和每个.a静态库占用的体积 【脚本链接

也可以使用clang plugin 或 mach-o 查找无用方法的方案。

https://github.com/netyouli/WHC_Scan 这个工具也可以使用,作为辅助参考,但仅限于OC代码。

思维导图:

参考资料:https://www.jianshu.com/p/991278b459ff

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章