1. 使用fui(Find Unused Imports)定期扫描工程中不用的类
fui(Find Unused Imports)是开源项目能很好的分析出不再使用的类,准确率非常高,唯一的问题是它处理不了动态库和静态库里提供的类,也处理不了C++的类模板。github.com/dblock/fui
- fui安装
安装 fui 工具
sudo gem install fui -n /usr/local/binfui usage: https://github.com/dblock/fui
- 使用方法
cd 到工程目录下,执行
fui find命令,然后等上那么几分钟(需要好几分钟甚至需要更长的时间),就可以得到一个列表了。 始终认为工具并不是100%靠谱,可根据这个列表,在项目中手动检查后并删除不再用到的类。

2. APPCode定期检查工程中无用的代码
通过APPCode 打开对应的工程文件 选择 Code - > inspect Code 分析代码,去掉无用的引用及代码。包括无用的类、函数、宏定义、value、属性等,而safe delete功能使得删除一些由于runtime被调用到的代码时更加安全智能。当然还是要人工校准过再确认删除。

3. 文件资源管理
- 删除无用资源文件
- 全部删掉1X的图片
- 删除重复的图片
- 未使用的图片可以通过LSUnusedResourcesgithub.com/tinymind/LS…扫描出来,不过要注意的是可能会有误伤,该工具是全匹配,一些拼接名字来使用的图片要注意手动剔除。
- 一些音频、视频和多余的plist文件以及readme文件什么的目测只能肉眼扫描了,我们没用到这些资源暂时没这个问题。
- 资源压缩
首先是图片压缩,ImageOptim工具可以实现无损压缩。 另外关于图片,建议使用Apple推荐的.xcassets来管理,它会把里边的所有png格式的图片压缩成一个Assets.car文件,压缩比率比其他方式管理图片要高。不过测试发现jpg图片不会在Assets.car文件里。 另如果你有用到音频或视频资源,也可以考虑压缩。
- 使用iconfont代替图片
最早这个东西是为 Web 设计的,主要是因为网页的 大小直接影响了加载速度,所以在压缩上连小 icon 都不放过,当然还有一个最主要的目的就是减少请求次数,因为如果是图片的话,一个图片就是一次请求。
- 优点:减小体积,字体文件比图片要小;图标保真缩放,解决2x/3x乃至将来的nx图问题;方便更改颜色大小,图片复用。
- 缺点:只适用于纯色icon;使用unicode字符难以理解;需要维护字体库。
- 使用:www.iconfont.cn网站可以方便地在线管理字库,使用方法参考www.iconfont.cn/help/detail…。