当我开始我的项目时,我很高兴在Xcode中使用Groups而不是文字文件夹:因为我在Xcode中使用浏览器来访问所有内容,所以内容组织得非常好,我很高兴。
但是,现在该项目即将被共享用于版本控制,项目文件夹本身就是那些试图通过终端扫描它的人的恐怖节目,大约300个文件,其中一半以上是图形。
我正在尝试重组事物,创建真正的文件夹并将它们导入Xcode。不幸的是,Xcode不允许我像对待组一样使用它们。例如,如果我右键单击实际添加的文件夹(蓝色,而不是黄色)并选择添加现有文件,它实际上并不将它们放在该文件夹中,而是将它们放在其根目录中。
同样,我无法将文件从一个虚假文件夹(一个组)移动到一个真正的文件夹中:Xcode不认为真正的文件夹是有效的地方来移动东西。
我错过了什么?我怎么能说服Xcode让我按照我使用组的方式使用文件夹?这里有somewhat similar question的答案,但由于我正在使用现有文件,因此它实际上并没有解决我的问题。
答案 0 :(得分:171)
如果您将一堆文件移动到一个新文件夹并保持子层次结构,那么它实际上比单独移动每个文件容易得多:
在身份和类型管理器中,选择要重新定位的Xcode中的组,然后单击信息窗格中的文件夹图标:
在Finder选择对话框中,找到您在步骤2中为该组创建的等效新文件夹。 All 该组中的文件现在将自动重新发现!
不是很好吗?对于您创建的每个新组,最多只需要重复这5个步骤(这可以分别重新定位每个文件!)
假设您不小心弄乱了移动,现在一堆文件都是红色的,无法找到:选择多个文件,这些文件已损坏,并使用相同的文件夹图标步骤4中的屏幕截图,找到包含这些文件的正确文件夹,然后他们会自动解析丢失的路径。
答案 1 :(得分:118)
2017年6月进一步编辑: Xcode 9自动执行此操作,无需特殊操作。此答案和Brandon's仅适用于Xcode 8及更早版本。
2016年12月编辑:布兰登的答案现在是一个更好的解决方案。回到2010年创建这个答案时,这是我能找到的唯一选择。我现在建议Brandon's answer,在下面。
事实证明,将文件移动到真实文件夹当然是可能的,尽管不是应该如此简单。
我从这里的问题Xcode organising files and folders (core data model objects - iPhone)获得了基本信息,但在此过程中学到了重要的事情。
移动文件分为两个步骤:
告诉Xcode您希望文件的位置:
移动实际文件
在调整此项目中的~300个文件时,我学到了几个重要的事情:
希望这有助于未来的人。我很惊讶它很难,偶尔也很棘手。
答案 2 :(得分:104)
在Xcode 5或Xcode 6中:
干杯。
答案 3 :(得分:22)
我发现解决XCode令人震惊的设计的最可靠方法是在Finder中整理所有文件,原因有两个:
即使移动现有的XCode文件,也可以更快地执行此操作:
注意:我从不使用“使用子组创建拖动文件夹”选项,因为在XCode 3中,它通常是无可救药的错误并且可能损坏项目。苹果显然(恕我直言)不会在内部使用此功能,否则它将永远不会被允许如此错误;如果Apple没有使用它,那么使用它通常也是不安全的 - 它们不擅长测试:)
答案 4 :(得分:21)
有一个简单的设置和使用命令行工具 - “synx” 可以在github中使用,完全符合此处所需。
它在finder中重新组织Xcode项目文件夹以匹配项目中的Xcode组。
你可以在这里找到它: https://github.com/venmo/synx
更新: XCode 9 默认支持此功能。所以,不再需要使用其他工具了!
答案 5 :(得分:5)
Xcode 9现在默认支持它。将文件从一个组移动到另一个组时,该文件也将从旧文件夹移动到新文件夹。这是在2017年WWDC上宣布的。
答案 6 :(得分:3)
我使用以下工具来实现它。Organize Folders in Groups Xcode
--no-default-exclusions
答案 7 :(得分:2)
我通常直接在Finder中将文件移动到目录中,然后在“获取信息”对话框中修复XCode中带有红色名称的文件:单击“选择...”按钮并选择文件的新locatoin 。这是我想在XCode中移动文件的第一个响应,它可以工作。
答案 8 :(得分:1)
从Xcode 4.5开始,当您在文件夹结构中拖动时,它会自动转换为Project Navigator中的嵌套组。然后,如果你在磁盘上查看(例如右键单击并选择在Finder中显示),则保留文件夹结构。
我发现尝试从旧项目中解决问题只是一种痛苦。事实证明,删除这些文件并将其再次拖入更容易。
答案 9 :(得分:1)
要在xcode 4.5中移动文件夹我只是...
答案 10 :(得分:1)
XCode 8最简单的技术....
假设您在逻辑组中有文件A,B,C,但希望将它们移动到硬盘驱动器上的文件夹中。
完成。
答案 11 :(得分:0)
在XCode 11(我刚刚在XCode 11.6上对此进行了验证)上,可以选择要在项目导航器下移动的文件,右键单击所选文件,然后单击“来自选择的新建组”。这将在磁盘上创建一个文件夹并适当地移动文件。