如何让Xcode复制磁盘上的文件夹结构中的项目组结构?

我有一个Xcode项目,具有以下组结构:

ProjectName/ Classes/ class1.h class1.m class2.h class2.m ... XMLDocs/ doc1.xml doc2.xml ... Resources/ Info.plist MainMenu.xib ... 

等等等等。

我想这也代表在磁盘上的文件夹结构:

 ProjectFolder/ Project.xcodeproj Classes/ class1.h class1.m class2.h class2.m ... XMLDocs/ doc1.xml doc2.xml ... Resources/ Info.plist MainMenu.xib ... 

而不是根目录项目文件夹方法中的一切。

有没有办法做到这一点,而无需手动创build磁盘上的文件夹结构,然后重新将Xcode中的所有引用重新指定到新的位置?

如果您可以告诉我如何在Xcode创build新组或将文件添加到现有组时自动执行此操作,则可以获得奖励积分。

在Xcode中没有“让我的磁盘看起来像我的项目结构”function。

但是,您可以使用AppleScript自动执行任务:您可以从脚本中检查和更改项目结构。 所以你只需要编写一个迭代项目结构的脚本,并使文件夹层次结构看起来像项目结构一样,同时调整Xcode的文件和组引用的位置。

可以在一定程度上做到这一点! 每当你创build一个新的组时,你只需要做一个额外的步骤(这是你第一次有很多事情要做)!

Xcode的位置设置

无论何时在Xcode中创build一个组,立即select它并打开右侧边栏。 注意名称下方的“位置:”设置。 单击“无”旁边的文件夹图标,并将其设置为具有相同名称的新文件夹。

现在,无论何时将文件添加到组中,它们都将前往磁盘上的相应文件夹。 呜!

不幸的是,这个最初的时间,你将有很多文件移动要做。 (当你改变组path时,你的文件将全部变成红色,因为Xcode将开始在新文件夹中查找它们,你必须手动将它们从Finder中移动来修复它。)然而,有一个命令在线工具为您执行此初始迁移: https : //github.com/venmo/synx

文件夹引用是你想要的。 拖动或添加文件到项目中时,可以select“为所有添加的文件夹创build文件夹引用”。 select那个,你会得到你想要的行为。

替代文字http://img.skitch.com/20081203-prtxsp7c36ern4afxxdixy93sq.png

您可以尝试添加项目的整个封闭文件夹作为文件夹引用。 这应该得到一切。 或者分别为“类”“资源”和“XML”添加引用。

我最近发现了一个命令行工具来组织你的文件夹结构。 安装简单,使用简单。

有关更多详细信息,请查看我的另一个关于相同的文件夹结构问题的答案 。

Xcode9解决了这个问题。 默认情况下,将在磁盘上创build一个具有相应文件夹的新组。