使用脚本删除ios工程中未使用图片

时间:2024-04-17 21:35:54
使用脚本删除ios工程中未使用图片

最近在读唐巧大神的《iOS开发进阶》,学到了一个大招:使用脚本删除ios中未使用的图片(纸书上有点小问题,参考github上的issue:使用脚本删除ios中未使用图片)。

issue中得到的建议是:将代码保存在一个.sh文件中,在xcode里面执行shell脚本文件。看到这里,头瞬间大了,大学学的shell都还给linux老师了....还有xcode中怎么执行脚本啊???使用脚本删除ios工程中未使用图片使用脚本删除ios工程中未使用图片

google一下,找到mac下创建.sh文件的小白方法:教你在mac上面创建可执行脚本文件。当然还有 XCode中执行脚本的三种方法。下面针对本次操作,自己写个总结:

1、创建可执行脚本文件:

(1)打开sublime,输入以下shell代码:

#! /bin/bash
for i in `find . -name "*.png" -o -name "*.jpg"`; do
file=`basename -s .jpg "$i" | xargs basename -s .png | xargs basename -s @2x` result=`ack -i "$file"`
if [ -z "$result" ]; then
echo "$i"
# 如果需要,可以直接执行删除:
# rm "$i"
fi
done


(2)保存文件名:deletePhoto.sh,记住保存的路径:/Users/linafu/deletePhoto

(3)为脚本文件添加执行权限:在终端输入如下脚本:chmod +x ./deletePhoto

至此,shell脚本就建好了!

2、在xcode中执行已经创建好了的脚本:

(1)在xcode菜单栏中:file->new->target,然后osx->other->external build system,命名为:scriptTarget,这样就建立了一个虚拟的target。

(2)在工程的target区,选中scriptTarget,在build tool里面输入:/Users/linafu/deletePhoto

(3)在工程target的build phasese->target dependencies中添加scriptTarget

好了,以后不论什么时候,build工程之前都会先build这个虚拟target,通过build这个target来运行脚本。当然,我们并不会每次编译都需要删除图片,所以,使用完可以将它从build phasese->target dependencies中移除。

忘了说,在所有的步骤之前,要先在终端通过:brew install ack 命令安装ack(ack用于做搜索)。

哈哈,添加截图太不方便,就不上图了,不够明白可以看文中的链接。另外,这里附上另一个删除ios中未使用图片的方法,用的是python脚本:传送门