iOS APP瘦身 清除无用图片资源和import的代码

app开发到一定阶段,必然会面临着包越来越大,需要瘦身。那么首先要考虑的就是清除无用的图片资源,因为图片资源占的空间相对较大。

·清除无用图片资源

这里只说shell脚本查找的方式,因为觉得相对来说是最方便简洁的,同时可以把这个脚本放在工程中,定期清理。
新建一个shell脚本,代码如下:

#! /bin/bash

echo "" > UnusedPic.txt
for i in `find . -name "*.png" -o -name "*.jpg"`; do
    file=`basename -s .jpg "$i" | xargs basename -s .png | xargs basename -s @2x | xargs basename -s @3x`
    result=`ack -i "$file"`
    if [ -z "$result" ]; then
        echo "$i" >> UnusedPicture.txt 
    fi
done

把这个shell文件命名为UnusedPicture.sh放到工程目录下,如果使用了cocopods就放到同名文件目录下。
打开终端,输入命令 shell UnusedPicture.sh,就会开始查找了,结束后会在同目录下生成一个UnusedPicture.txt,里面是所有查到没有使用的图片。
这里要提一下,因为是按照图片名来查找的,但是代码中我们实际上是按照imageset名称来使用的,所以添加的图片的时候应该尽量保证两个名字一致。
所有检查出来的图片尽量都在工程中全局搜索一下,因为会有误搜的,也会有类似于loading_%d这样使用的。

·清除没用到的import代码

这个在一次次迭代和重构后数量也并不少。有一个现成的工具,就是fui,非常好用,错误率比较低。以前可以直接添加插件使用,但是现在大家都知道,xcode不能使用第三方的插件了,也有办法破解,但是确实很麻烦,效果也不好。所以我们还是直接用终端来用fui。
fui 的guthub写了用法,也很简单:gem install fui。但是就这一句都经常会出现问题,比如

ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/gli

这是因为OSX el Capitan为了避免修改系统根目录而增加的限制,可以这样做

sudo gem install -n /usr/local/bin fui

运行完成后会直接在终端展示出很多没用的代码,有的是import了但是没有使用的,也有目录下有但是工程中没有添加到也没有用到的,最好还是全局搜索一下再删除。

推荐阅读更多精彩内容