iOS-App瘦身
关于App瘦身的实践
构成
- 可执行文件
- 资源
大纲
删除无用资源
未使用的图片
工具
下载后用Xcode运行,会启动一个Mac程序。
操作
- 一般都是启动图比较大,往期启动图没有及时清理
- 不是特别大的工程,未使用图片没多少。不要灰心
- 要选中
ignore similar name
防止误删 - 序列图会误报,一定要检查好。防止误删
- 某些动画的资源,也会误报,要检查好
定期检查
防止误删
删除重复的资源
重复资源(主要指图片)不是指命名重复而是内容相同。fdupes
是Linux下的一个工具,可以在指定的目录及子目录中查找重复的文件。fdupes
通过对比文件的MD5签名,以及逐字节比较文件来识别重复内容。
项目中图片分两处存放,Assets.xcassets和images文件夹,所以在这两个目录查找就可以。
1 | fdupes -r xxx/images xxx/Images.xcassets |
图片压缩
WebP图片压缩
WebP是Google提供的一种图片编码格式,通常情况下WebP格式的图片是原始JPG/PNG图片的1/3,所以对于重度依赖图片显示的应用,转换使用WebP可以节省大量的网络传输数据和时间。对于APP瘦身,使用WebP格式可能是一种方式,可以使用WebP格式的图片替代现有的图片资源,可以一定程度的节省空间。
代码瘦身
AppCode代码静态检查
1 | 菜单栏 -> code -> Inspect Code |
编译器优化
Strip Linked Product
、Make Strings Read-Only
、Symbols Hidden by Default
设置为YES- 去掉异常支持,Enable C++ Exceptions、Enable Objective-C Exceptions设置为NO, Other C Flags添加-fno-exceptions
LinkMap分析包大小
生成LinkMap文件,可以查看可执行文件的具体组成
可借助第三方工具解析LinkMap文件: https://github.com/huanxsd/LinkMap