是否可以在Xcode项目的Build Phases部分中对Compile Sources列表进行排序?

时间:2014-06-20 11:21:54

标签: xcode

我想对'编译源中的文件进行排序'我的Xcode项目的部分根据他们的名字。有可能吗?

4 个答案:

答案 0 :(得分:25)

是的,您可以对Xcode中的编译源部分进行重新排序,但不能从GUI重新排序 - 考虑到这已经是IDE的第6版并且它们仍然没有,这是一种耻辱了解了这个基本功能。

正如A-Live所说,您需要编辑 yourproject.xcodeproj 文件中的 project.pbxproj 文件。使用Finder选择yourproject.xcodeproj文件,然后使用上下文菜单显示包内容。之后用文本编辑器打开project.pbxproj文件。

找到 PBXSourcesBuildPhase 部分,将 files =(); 之间的所有内容复制到新的文本文件中。删除前导标签/空格。将该文件保存在磁盘上的某个位置。打开终端并执行此操作:

 sort -bf -t " " -k 3 PBXSourcesBuildPhase.txt > PBXSourcesBuildPhase.sorted.txt

在文本编辑器中打开新的PBXSourcesBuildPhase.sorted.txt文件,将已排序的行复制到 project.pbxproj PBXSourcesBuildPhase 部分(覆盖那些行你以前复制过并保存。

现在您应该能够看到Xcode中编译源部分中排序的所有文件。

我已经在Xcode 6.0.1中使用一个小项目(约150个源文件)对此进行了测试,并且没有任何问题。

小心:在尝试之前,您应该备份项目文件(或者更好:使用版本控制)。以防万一。

答案 1 :(得分:4)

我认为这是不可能的,这是一种耻辱。

作为大多数情况下的解决方法,您可以使用文件列表右上角的搜索过滤器。

例如,我需要在许多文件中添加编译器标志,幸运的是,这些文件都以相同的前缀开头。要按照here所述,您必须双击文件。

然后,我过滤了前缀的文件,按住Shift键并将它们全部选中,然后释放shift并双击其中一个。这样我就可以一次性将标志添加到所有文件中

答案 2 :(得分:3)

这是彻底的答案,但我想我会分享Emacs命令,为我排序这些。导航到project.pbxproj,标记PBXSourcesBuildPhase下的所有文件,然后使用命令:

M-3 M-x sort-fields

...也就是按第3列排序标记区域,这恰好是文件名。 C-x C-s你正在路上。

答案 3 :(得分:1)

您可以在PBXSourcesBuildPhaseproject.pbxproj部分的条目进行重新排序,它对我有用,但当然并不能保证它的正常运行。别忘了先备份备份。