前言

app 项目随着需求越来越多,app 的体积越来越大.尤其在 iOS 端 app 下载超过 150M,则会无法使用移动网络下载,也必然会流失小部分流量.

在开发过程中,有些需求砍掉了或者被迭代了,代码虽然被删除了,但是图片资源等可能没有被及时删除,会造成主项目中有大量的图片未被真正使用.

所以基于上述问题,需要定期检查项目中的冗余资源并且删除,达到减少 app 体积的效果.

工具调研

LSUnusedResources

https://github.com/tinymind/LSUnusedResources

image

这个工具是一个 mac 上的客户端,输入 project 地址和点击扫码就可以扫描出未使用的资源,并且可以配置正则表达式来匹配资源.

实际使用中的确发现了一些老图没有被删除.

但是缺点在于没有命令能执行扫描.

FengNiao

https://github.com/onevcat/FengNiao

这是一款命令行扫描项目中未使用的资源工具.

安装步骤:

git clone https://github.com/onevcat/FengNiao.git
cd FengNiao
./install.sh

执行命令:

fengniao -p /Users/xinxi/Documents/iOSProject/DDProject_iOS

image

扫描到未使用资源总数

image

扫描到未使用资源列表

FengNiao 完全是 cli 操作,弥补了 LSUnusedResources 的不足.
并且实际扫描的数据对比 LSUnusedResources 基本一致.

脚本开发

FengNiao 提供的数据,再把数据过滤出来就可以提供有效数据了.

导出数据

封装了上面 FengNiao 的命令行参数,最终把数据导出到 check.log 中

字节数 + 图片地址

image

过滤不需要的数据

过滤主要是根据开发的需求,过滤出不需要的数据.

比如过滤@2x或者@3x图.

image

报告展示

报告报告:版本、未使用总数据量、未使用资源列表

上传报告

在 QA 管理平台中,包大小检查汇总模块可以汇总定期扫描的测试报告.

image

后续

后续会把 iOS 检查未使用图片资源加入到专项测试中,每个版本的专项测试报告附上扫描结果方便开发优化项目.

学习文章

iOS 之自动检测项目中的无用的图片资源

https://blog.csdn.net/luochuanAD/article/details/75995323

LSUnusedResources 的 github

https://github.com/tinymind/LSUnusedResources

FengNiao 的 github

https://github.com/onevcat/FengNiao


↙↙↙阅读原文可查看相关链接,并与作者交流