在 Xcode 将文件移动到真正的文件夹中

当我开始我的项目时,我很高兴使用 Xcode 的组而不是文字文件夹,因为我使用 Xcode 的浏览器来访问所有的东西,东西被很好地组织起来,我很高兴。

然而,现在该项目即将共享版本控制,项目文件夹本身是一个恐怖的表演,那些试图通过终端扫描它,大约300个文件,其中一半以上是图形。

我现在正在尝试重新组织东西,创建真正的文件夹并将它们导入到 Xcode 中。不幸的是,Xcode 不允许我像处理组一样处理它们。例如,如果我右键单击一个实际添加的文件夹(蓝色,而不是黄色)并选择添加现有的文件,它实际上并没有将它们放在该文件夹中,而是将它们放在其根目录中。

类似地,我不能将一个文件从一个人造文件夹(一个组)移动到一个真正的文件夹: Xcode 不认为真正的文件夹是有效的地方移动东西。

我错过了什么?如何说服 Xcode 让我像使用组一样使用文件夹?这里有一个 类似的问题的答案,但它实际上并没有解决我的问题,因为我使用的是现有的文件。

66231 次浏览

进一步编辑于2017年6月: Xcode 9自动完成这项工作,不需要特别的努力。这个答案和 布兰登的只适用于 Xcode 8及更早的版本。

编辑于2016年12月: 布兰登下面的回答是一个更好的解决方案。回到2010年这个答案被创造出来的时候,这是我能找到的唯一选择。我现在建议 布兰登的回答,在下面。


事实证明,将文件移动到真正的文件夹中当然是可能的,尽管不像它应该的那样简单。

我从这里的一个问题中得到了基本的信息,< strong > Xcode 组织文件和文件夹(核心数据模型对象-iPhone) ,但是在这个过程中学到了很多重要的东西。

过程

移动文件分为两个步骤,包括多个子步骤:

  1. 告诉 Xcode 您希望文件 的位置:

    • 右键/Control-单击要移动的文件或文件组,然后从出现的上下文菜单中选择 去找信息。出现 群组资讯文件信息窗口。

    • 单击 路径区域窗口最右侧的 选吧按钮。将出现一个对话框。

    • 导航到要将文件移动到的文件夹。如果需要,创建一个 新文件夹。单击对话框右下角的 选吧按钮,然后关闭 小组资料/档案资料窗口。

    • 组中的文件/文件的名称将变成红色,表示 Xcode 无法在您指定的位置找到它们。

  2. 移动真正的文件

    • 在 Finder (或 Git)中,将您在步骤1中选择的文件移动到您希望它们所在的实际文件夹中。

    • 切换回 Xcode。文件/组应该再次变黑。如果任何仍然是红色的,那么你已经错过了移动的东西到正确的文件夹。

小费

在调整这个项目中的 ~ 300个文件时,我学到了一些重要的东西:

  • 有些文件拒绝以这种方式移动; 也就是说,当您导航到新的目标时,选吧按钮被禁用,新文件夹按钮也是如此。解决方案,虽然我不知道为什么会有不同,是首先使用 Xcode 将这些文件放在一个组中(右键/控制-单击文件并选择 小组,并给组一个名称) ,然后将组移动到新的位置。实际移动 Finder 中的文件后,可以将它们从组中删除(通过将它们拖到新的父组/文件夹并删除组)。

  • 在完成大量文件的步骤2之后,每隔几分钟停止并构建一次。这个构建会告诉你到目前为止你是否搞砸了什么事情,这样在你造成太多伤害之前就可以更容易地回去修复它。

  • 如果这些文件不能移动到你想要它们移动到的地方,我花了很长时间才把一些早期创建的文件移动到类文件夹中,你可以简单地把它们从它们在 finder 中的旧位置拖到桌面之类方便的地方,删除对它们在 Xcode 的引用,然后通过右键/控制-点击 abc0选项重新导入它们。

  • 如果在过去您使用 Xcode 删除对文件的引用,而不将它们移动到该项目中的垃圾桶中,那么您将发现不需要移动的文件只是静静地放在那里。注意不要像我一样,混淆当前正在移动的一组文件的名称,以及那些旧的、不再链接的文件,坚持让 Xcode 导入它们,因为您认为它们密度很大。

希望这对将来的某个人有所帮助。我很惊讶它竟然如此困难,有时还很棘手。

我通常将文件直接移动到 Finder 中的目录,然后在 XCode 中的“获取信息”对话框中修复红色名称的文件: 点击“选择...”按钮并选择文件的新位置。这是我想在 XCode 中移动文件时的第一个响应,而且它能正常工作。

我发现解决 XCode 糟糕设计的最可靠方法是在 Finder 中组织所有文件,原因有二:

  1. 与 XCode 的 GUI 不同,Finder 不会犯“错误”
  2. 在 Finder 中组织好事情之后,您可以将整个 Finder 文件夹拖放到 XCode 中,并且... ... 它可以完全按照您的需要进行操作,而且不费吹灰之力

即使在移动现有的 XCode 文件时,这样做也会更快:

  1. 选择 Finder 中的文件
  2. 在 Finder 中为它们创建一个文件夹
  3. 将它们拖放到文件夹中(自动移动)
  4. 将 Finder 文件夹拖放到 Xcode 中(自动: 创建 Xcode 文件夹,添加 Finder 文件夹中的每个文件)
  5. Cmd-选择您现在在 Xcode 中看到的每个“红色”文件(因为您移动了它们) ,然后按删除键

注意: 我从不使用“创建带有子组的拖放文件夹”选项,因为在 XCode 3中,这个选项经常出现无可救药的错误,可能会破坏项目。很明显,苹果公司并没有在内部使用这个功能,否则它就不会被允许有这么多的漏洞; 如果苹果公司不使用任何东西,使用它通常也不安全——他们不擅长测试:)

在 Xcode 5或 Xcode 6中:

  1. 创建映射到 Finder 中的组的文件夹
  2. 将文件移动到 Finder 中的那些文件夹中
  3. 选择左侧 Xcode 侧边栏中的每个红色文件
  4. 单击“ Show/Hide Utitility”按钮以显示右侧工具条(见图)
  5. 在“ Identity and Type”中,单击小按钮并选择文件位置(见图)

enter image description here

干杯。

从 Xcode 4.5开始,当您拖入一个文件夹结构时,它会自动转换为 Project Navigator 中的嵌套组。然后,如果您查看磁盘(例如右键单击并选择 Show in Finder) ,文件夹结构将被保留。

我发现尝试修复一个旧项目的东西只是一个痛苦。事实证明,直接删除这些文件并再次拖动它们要容易得多。

在 xcode 4.5中移动一个文件夹,我只是..。

  1. 从 xcode 中删除文件/组并选择“删除引用”。
  2. 进入 finder 并根据需要移动文件夹/文件。
  3. 完成之后,我回到 Xcode,选择 File-> Add Files to { projectName }。
  4. 确保勾选“将项目复制到目标组的文件夹(如果需要)”
  5. 确保勾选了“ CreateGroupforanyadd 文件夹”
  6. 确保为您的项目选中“添加到目标”

一个现代的(和死的简单!)2017年的方法(Xcode 6,7,8,有时是9,因为它在某些时候会自动执行) :

如果你将一大堆文件移动到一个新的文件夹并保持子层次结构,这实际上比单独移动每个文件要容易得多:

  1. 在 Xcode 文件夹树中创建新组,并按照自己的喜好将文件组织到其中。
  2. 在 Finder 中创建一个匹配的物理文件夹树,并将物理文件组织到这些文件中,以便与步骤1中的操作相匹配。
  3. Xcode 的所有参考资料现在都应该是红色的(没关系!)。
  4. 在“身份和类型管理器”中,选择要重新定位的 Xcode 的 小组,然后单击信息面板中的文件夹图标:

  5. 在 Finder 选择对话框中,找到您在步骤2中为此组创建的等效新文件夹。全部组中的文件现在将被自动重新发现!

这不是很好吗?对于您创建的每个新组,您最多只需要重复这5个步骤一次(这比单独重新定位每个文件要好得多!)

加分!

假设你不小心搞砸了移动,现在你的一堆文件是红色的,找不到了: 选择 多个文件是坏的,并使用相同的文件夹图标在第4步截图中,找到正确的文件夹包含这些文件,他们会自动解决丢失的路径。

我使用以下工具来实现它

--no-default-exclusions

有一个简单的设置和使用 < strong > 命令行工具-“ synx” 可以在 github 中完成这里所需要的任务。

它重新组织 finder 中的 Xcode 项目文件夹以匹配项目中的 Xcode 组。

你可以在这里找到: Https://github.com/venmo/synx

更新: XCode9 默认支持这个特性,所以不需要再使用其他工具了!

Xcode 9

似乎 Xcode 9现在默认支持它。当您将文件从一个组移动到另一个组时,文件也将从旧文件夹移动到新文件夹。这是在2017年 WWDC 上宣布的。

XCode8最简单的技术..。

假设在逻辑组中有文件 A、 B、 C,但希望将它们移动到硬盘驱动器上的文件夹中。

  1. 通过 Finder 创建目标文件夹
  2. 使用选项窗格在 XCode (File-> Add Files)中添加文件夹以选择文件夹引用(而不是组)
  3. 将文件 A、 B、 C 从(旧)组拖动到项目导航器中的(新)文件夹引用。XCode 将把文件移动到文件夹中,包括项目中的文件和磁盘上的文件。

成交。

在 XCode 11上(我刚刚在 XCode 11.6上验证了这一点) ,您可以选择您想要移动到项目导航器下的文件,右键单击选定的文件,然后单击“ New Group From Selection”。这将在磁盘上创建一个文件夹并适当地移动文件。