如何删除Xcode项目中所有未被引用的文件?

8
我曾经多次添加不同时间的文件到我的项目中,后来删除了它们,但我忘记让Xcode同时删除文件和引用。由于Xcode没有将分组的文件存储在单独的目录中,现在我的项目目录中有成百上千个文件和文件夹混杂在一起,而要筛选出我不想要的文件会很麻烦。
我使用的是Xcode 5。如何使其自动删除项目目录中实际上不属于该项目的所有文件?注意:我指的不是源代码中引用的文件,只是Xcode项目本身。
我想过使用内置的git功能解决这个问题,即将项目推送到Github,删除本地副本,然后重新克隆。但显然,在Xcode中删除引用的文件并不会阻止它们被提交。如果有某个选项可以让Xcode仅在git存储库中包含引用的文件,那也可以使用(即使这是一个hack方法)。
2个回答

1

我无法安装接受答案中的实用程序,因此自己制作了一个快速而简单的解决方案。从项目根目录运行此命令,并调整.swift以匹配您感兴趣的扩展名:

#!/bin/zsh
PROJECT=YourProjectName
for file in $PROJECT*/**/*.swift
do
    grep -q "$(basename $file)" ../$PROJECT.xcodeproj/project.pbxproj || echo "$file"
done

这将打印出任何文件名未出现在project.pbxproj中的文件。它依赖于project.pbxproj包含文件名的注释。它并不是100%可靠,因为同一名称的未引用文件与不同引用文件的文件将不会被报告,但总比没有好!


很好,我猜自Xcode 5以来有很多变化。读者请注意,您可以用rm替换echo一次性删除它们。 - sudo

1
据我所知,在Xcode项目中找到未引用的文件并没有简单的方法。
不过,我写了一个工具来完成这个任务。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接