繁体   English   中英

如何从 Xcode 项目中删除未使用的图像?

[英]How to remove unused Images from Xcode Project?

我想从 XCode 项目中删除所有未使用的图像,为此我使用以下脚本:

#!/bin/sh
PROJ=`find . -name '*.xib’ -o -name '*.[mh]'`

for png in `find . -name '*.png'`
do
name=`basename $png`
if ! grep -q $name $PROJ; then
rm –Rf "$png"
echo "$png is not referenced"
fi
done

上面的脚本运行良好,并删除了项目中未在“ .xib ”中引用的所有图像,但是有一个问题。

问题

该脚本还会删除“ .m ”文件中引用的图像。 (以编程方式设置的图像)

要求

你能告诉我如何在搜索中添加“ .m ”和“ .xib ”文件。

PROJ=`find . -name '*.xib’ -o -name '*.[mh]'`

首先,您不是在使用rm -Rf来删除单个图像。 当心! 这会以递归方式删除而不强制它,因此它可能有风险并删除您不想要的东西。 最好只说rm

你的脚本组织得很好而且很整洁。 为了使它更健壮,在变量中使用引号总是好的。 这样,它也将支持带空格的名称。 也就是说,如果你想删除一个名为“a b.png”的文件,并且名称存储在变量$png ,说rm $png你运行rm a b.png ,所以它会尝试删除ab.png

介绍完所有这些之后,让我们专注于这里的具体问题。

看起来您正在寻找以.xibm结尾的文件。 find . -name '*.xib' -o -name '*.[mh]' find . -name '*.xib' -o -name '*.[mh]'语法似乎没问题,但find使用正则表达式可能更好。

find -type f -regex '.*\.\(xib\|m|h\)'

最后,您将使用for循环遍历find的结果。 请注意,您还可以说:

while IFS= read -r png;
do
    # things with "$png"
done < <(find ...)

但我不会在这里提出任何其他建议,因为我并没有真正遵循这些.xib.png文件的逻辑。 如果你能举个例子,我会更新我的答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM