iOS App Thinning
iOS App瘦身功能,不错的文章:
安装包的优化,参考iPhone安装包的优化
未使用的资源
资源中未使用的资源包括图片、音视频等
图片资源
图片方面的优化,包括图片压缩和去掉项目中未使用的图片资源
1.使用ImageOptim来做图片的压缩
2.使用LSUnusedResources来查找和删除未使用的图片资源
经我自己实践,发现ImageOptim
虽然可以对图片(png和jpg类型)进行压缩,但压缩后并不能显著的减小ipa的体积(还是能减小,但是不多,我所经历的项目只减少了0.2M)。有文章说是使用ImageOptim
,需要将Xcode中COMPRESS_PNG_FILES
设置为NO
。但我这样做后,效果还是和原来一样,感觉没什么效果
但删除掉项目中未使用的资源,包括图片、音视频、html/js文件,确实是可以减小ipa包的体积的
包内容
在ipa包中,比较大的内容,主要有2个:
Assets.car
- app的可执行文件
Assets.car
的文件,可参考Analysing Assets.car file in IOS
使用Asset Catalog Tinkerer来查看Assets.car
的内容
二进制包
可使用MachOView
来查看二进制包的组成,一般都包含2种架构:
- armv7
- arm64
可使用LinkMap来对文件进行分析,可以知道每个类在最终的可执行文件中占据的大小,就可以有针对性的进行优化
使用的时候需要将Write Link Map File
选项设为yes
为使用的类和方法
推荐使用Appcode
来做代码检查,code->inspect code
代码检测分析功能删除无用类和无用方法
stackoverflow中有介绍使用Xcode来查找某个类的未使用的方法,参考:
有一个介绍是,使用assistant editor
,选择callers
,可发现某个方法是在哪些地方调用的