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

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

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

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脚本:传送门

使用脚本删除ios工程中未使用图片的更多相关文章

  1. iOS 工程中文件变成红色是什么情况

    iOS 工程中文件变成红色是原有的文件路径改变了,系统找不到了.

  2. react native 之 在现有的iOS工程中集成react native

    在现有的iOS工程中集成react native, 或者说将react native引入到iOS 项目,是RN和iOS混合开发的必经之路 参考官网教程:https://reactnative.cn/d ...

  3. 自动删除Android工程中无用的资源

    开发时间久了, 几个版本迭代之后, 工程中难免留下很多垃圾资源, 造成apk的包很大, 这里介绍一个工具, 可以自动扫描工程中, 没有使用的资源, 然后自动删除: 包括图片, xml, 文本等. 采用 ...

  4. 把 Reative Native 47 版本集成到已有的 Native iOS 工程中

    一.搭建开发环境 http://reactnative.cn/docs/0.46/getting-started.html#content 二.创建一个模板 运行以下命令,创建一个最新版本的 reac ...

  5. iOS工程中的info.plist文件的完整研究

    原地址:http://blog.sina.com.cn/s/blog_947c4a9f0100zf41.html 们建立一个工程后,会在Supporting files下面看到一个"工程名- ...

  6. iOS工程中的info.plist文件

    我们建立一个工程后,会在Supporting files下面看到一个"工程名-Info.plist"的文件,这个是对工程做一些运行期配置的文件,很重要,不能删除. 如果你在网上下载 ...

  7. 使用 shell 脚本配置 iOS 工程

      APP开发过程中,往往需要在多个网络环境或配置中进行切换,以获取不同配置的APP,甚至有时需要用一套代码经过简单的配置生成不同的APP.而手动配置费时费力,且容易出错.这里介绍用脚本工具,去生成不 ...

  8. 定时脚本删除docker容器中内容

    今天在我同步mongo数据库的时候,服务器的磁盘突然就被占满了导致同步中断,mongo容器也停止工作了.然后就想要弄一个能够定时清理同步过程中留存在docker容器中的mongo数据的脚本.话不多说, ...

  9. ios工程中ARC与非ARC的混合

    ARC与非ARC在一个项目中同时使用, 1,选择项目中的Targets,选中你所要操作的Target,2,选Build Phases,在其中Complie Sources中选择需要ARC的文件双击,并 ...

随机推荐

  1. poj2217 Secretary 后缀数组

    #include <iostream> #include <cstring> #include <string> #include <cstdio> u ...

  2. 雅图CAD

    今天培训了雅图CAD. 由辅助线确定下一步的位置,是个好思想.

  3. 【二叉树】hdu 1710 Binary Tree Traversals

    acm.hdu.edu.cn/showproblem.php?pid=1710 [题意] 给定一棵二叉树的前序遍历和中序遍历,输出后序遍历 [思路] 根据前序遍历和中序遍历递归建树,再后续遍历输出 m ...

  4. 【线段树查询区间最值】poj 3264 Balanced Lineup

    #include<cstdio> #include<algorithm> using namespace std; ; struct Seg { int l,r,mi,ma; ...

  5. ⑨要写信(codevs 1697)

    题目描述 Description 琪露诺(冰之妖精)有操控冷气的能力.能瞬间冻结小东西,比普通的妖精更危险.一直在释放冷气的她周围总是非常寒冷. 由于以下三点原因…… 琪露诺的符卡 冰符“Icicle ...

  6. msp430项目编程54

    msp430综合项目---扩展项目四54 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结

  7. pl/sql小技巧

    更正方法: 然后把Automatic statistics的勾选去掉,点击apply即可

  8. 在 IntelliJ IDEA 中为自己设计的类库生成 JavaDoc

    因为某个项目需要,为团队其他兄弟姐妹开发了一个 XML 分析处理器,并将其设计为一个类库,提供相应的 API 接口.为了方便大家的使用,需要生成对应的 JavaDoc 帮助文档,就像 JavaSE 标 ...

  9. Java修饰符关键字的顺序

    Java语言规范建议按以下顺序列出修饰符: 1. Annotations 2. public 3. protected 4. private 5. abstract 6. static 7. fina ...

  10. linux 每天备份mysql数据

    原文:http://www.open-open.com/code/view/1433587311890 前言: 如果你的数据库文件较大,可能备份的时候需要占用很多服务器资源,所以站长要尽量选择访客最少 ...