在Xcode中将文件移动到实际文件夹中

Mat*_*ick 175 directory macos xcode ios

当我开始我的项目时,我很高兴在Xcode中使用Groups而不是文字文件夹:因为我在Xcode中使用浏览器来访问所有内容,所以内容非常有条理,我很高兴.

但是,现在该项目即将被共享用于版本控制,项目文件夹本身就是那些试图通过终端扫描它的人的恐怖节目,大约300个文件,其中一半以上是图形.

我正在尝试重组事物,创建真正的文件夹并将它们导入Xcode.不幸的是,Xcode不允许我像对待组一样使用它们.例如,如果我右键单击实际添加的文件夹(蓝色,而不是黄色)并选择添加现有文件,它实际上并不将它们放在该文件夹中,而是将它们放在其根目录中.

同样,我无法将文件从一个虚假文件夹(一个组)移动到一个真正的文件夹中:Xcode不认为真正的文件夹是有效的地方来移动东西.

我错过了什么?我怎么能说服Xcode让我按照我使用组的方式使用文件夹?这里有一个类似问题的答案,但它实际上并没有解决我的问题,因为我正在处理现有文件.

bra*_*ipt 172

2017年的一种现代(简单而死的简单!)方法(Xcode 6,7,8,有时9,因为它在某些时候自动完成):

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

  1. 在Xcode文件夹树中创建新组,并根据需要将文件组织到它们中.
  2. 在Finder中创建匹配的物理文件夹树,并将物理文件组织到其中,以匹配您在步骤1中执行的操作.
  3. Xcode中的所有引用现在都应该是红色的(没关系!).
  4. 从身份和类型管理器中,选择要重定位的Xcode中的,然后单击信息窗格中的文件夹图标:

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

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

奖励积分!

假设您不小心搞砸了移动,现在一堆文件都是红色的,无法找到:选择多个已损坏的文件,并在步骤4的屏幕截图中使用相同的文件夹图标,找到包含这些文件的正确文件夹文件,他们将自动解决丢失的路径.

  • 但是,这样做会使文件在Git中无法跟踪.当然我总是可以读取文件,但我错过了什么? (3认同)
  • @jeraldo 不确定您使用的是什么风格的 git,但我从来没有遇到过这个问题。但是,您可以轻松地执行 `git add .`。 (2认同)

Mat*_*ick 118

2017年6月进一步编辑: Xcode 9自动执行此操作,无需特殊操作.这个答案和Brandon仅适用于Xcode 8及更早版本.

2016年12月编辑: Brandon的答案现在是一个更好的解决方案.回到2010年创建这个答案时,这是我能找到的唯一选择.我现在建议布兰登的答案如下.


事实证明,将文件移动到真实文件夹当然是可能的,尽管不是应该如此简单.

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

过程

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

  1. 告诉Xcode你想要文件的位置:

    • 右键/按住Control键并单击要移动的文件或文件组,然后从显示的上下文菜单中选择" 获取信息 ".将出现" 组信息"或" 文件信息"窗口.

    • 单击" 路径"区域中窗口最右侧的"选择"按钮.出现一个对话框.

    • 导航到要将文件移动到的文件夹.如果需要,创建一个新文件夹.单击对话框右下角的" 选择"按钮,然后关闭" 组信息/文件信息"窗口.

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

  2. 移动实际文件

    • 在Finder(或Git)中,将您在步骤1中选择的文件移动到所需的实际文件夹中.

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

提示

在调整此项目中的~300个文件时,我学到了几个重要的事情:

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

  • 完成步骤2后,每隔几分钟就停止并构建一些文件.构建将告诉你到目前为止你是否搞砸了任何东西,在你造成太多伤害之前更容易回去修复它.

  • 如果文件不会移动到你想要的位置 - 我有一段时间移动一些早期在Classes文件夹中创建的文件 - 你可以简单地将它们从查找器中的旧位置拖出像桌面一样方便,在Xcode中删除对它们的引用,然后通过右键/控制单击" 添加现有文件"选项重新导入它们.

  • 如果在过去你使用Xcode删除对文件的引用而不将它们移动到这个项目中的垃圾箱,你会发现不必移动但只是坐在那里的文件.小心你不做我做的事情,混淆我正在移动的当前文件组的名称和旧的,不再链接的文件,坚持Xcode导入它们因为你认为它是密集的.

希望这有助于未来的人.令我感到惊讶的是,它既困难又偶尔也很棘手.

  • 在xcode 4中我必须做一些不同的事情 - 右键单击​​时没有看到任何上下文的"获取信息"链接.相反,我必须显示身份和类型视图(可能是我不知道的名称).它是xcode4标题栏中视图选项中最右侧的按钮.我首先在文件系统上移动文件,然后单击路径旁边的奇怪图标,并告诉xcode新文件所在的位置. (11认同)
  • 移动文件的问题是,当它已经在SVN控制下时,你需要确保使用诸如Versions或Cornerstone之类的应用来移动文件...或者你最终会遇到可怕的版本控制问题!我希望Apple能够抛弃"群体"的想法,把所有东西放在真正的文件夹中,一个Eclipse ... (6认同)
  • 将所有文件放在同一目录中真的让我烦恼.这次真是万分感谢! (2认同)

rei*_*man 104

在Xcode 5或Xcode 6中:

  1. 在Finder中创建映射到您的组的文件夹
  2. 将文件移动到Finder中的那些文件夹中
  3. 在左侧的Xcode侧栏中选择红色的每个文件
  4. 单击"显示/隐藏实用程序"按钮以​​显示右侧边栏(参见图)
  5. 在"身份和类型"中,单击微小按钮并选择文件位置(参见图)

在此输入图像描述

干杯.


Ada*_*dam 22

我发现解决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中,它通常是无可救药的错误并且可能损坏项目.苹果显然(恕我直言)不会在内部使用此功能,否则它将永远不会被允许如此错误; 如果Apple没有使用它,它通常也不安全使用它 - 它们不擅长测试:)

  • 我明天正在尝试这个......这是我一直在寻找的简单解决方案.为什么他们这么难?如果它只是镜像文件系统,那就不那么容易混淆了.谢谢! (2认同)

Nit*_*rad 21

有一个简单的设置和使用命令行工具 - github中提供的"synx"完全符合此处所需.

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

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

更新: XCode 9默认支持此功能.所以,不再需要使用其他工具了!


Guy*_*her 6

Xcode 9

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