iOS开发——IPA瘦身

iOSApp在迭代过程中,ipa包不可避免地越来越大,能不能瘦身呢?

删掉无用照片

首先考虑比较占用硬盘的是图片,使用LSUnusedResources分析项目中无用的图片,搜索完图片后,点表头Size排个序,看看有没有比较大的图片,将其批量删除,或者更稳妥的办法是人工校对后将其移出项目,也可以暂存到别的地方备用,以防删错。
在这里插入图片描述
这步完成,一般能清理掉大部分废弃图片。

图片压缩

在项目中找到比较大的图片(在Finder中将文件夹按照大小排序和分类)使用ImageOptim对其进行压缩。(也可以拖整个图片目录进去,全部压缩,就是过程有点慢,对较小图片压缩性价比不高)。
压缩后打包,发现ipa大小变化不大,原因在这里这里写的很清楚,大意就是xcode按照自己的方式处理这些图像,在开启xcode自带的png压缩时,xcode重新压缩png文件,以提高iOSApp的绘图性能。它的副作用是ImageOptim的工作被取消了,因为图像被重新构建了。所以结论就是:

如果追求极致的大小,就禁用xcode的png压缩,将所有图片使用imageOptim压缩(将Building Settings中的Compress PNG Files置为NO);如果需要xcode优化的绘图,无需压缩大部分png文件,不过为了减少ipa体积,可以压缩放在mainBundle里的图,其他放在Assets.xcassets里的png。

查看可执行文件,清理第三方库

XCode开启编译选项 “Write Link Map File”,然后cmd+B编译,按照building settings的path to link map file中标识的路径,找到编译后的xxx-LinkMap-normal-arm64.txt文件。这个LinkMap里展示了整个可执行文件的全貌,列出了编译后的每一个.o目标文件的信息(包括静态链接库.a里的),以及每一个目标文件的代码段,数据段存储详情。
使用LinkMap
解析工具检查每个类占用的大小。有的库没有用到,有的库较大且可以用其他更好的库替代,就看自己了。

猜你喜欢

转载自blog.csdn.net/gaoqinghuadage/article/details/105789524