首页 文章

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

提问于
浏览
170

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

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

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

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

我错过了什么?我怎么能说服Xcode让我按照我使用组的方式使用文件夹?这里有一个somewhat similar question的答案,但它没有使用现有文件 .

11 回答

  • 2

    FURTHER EDITED JUNE 2017: Xcode 9自动执行此操作,无需特殊操作 . 这个答案和Brandon's仅适用于Xcode 8及更早版本 .

    EDITED DECEMBER 2016: 下面布兰登的答案是一个更好的解决方案 . 回到2010年创建这个答案时,这是我能找到的唯一选择 . 我现在建议Brandon's answer,下面 .


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

    我从这里得到了一个问题的基本信息,但是在这个过程中我学到了重要的东西 .

    过程

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

    • Tell Xcode where you want the files to be

    • 右键/按住Control键并单击要移动的文件或文件组,然后从显示的上下文菜单中选择 Get Info . 出现 Group InfoFile Info 窗口 .

    • 单击 Path 区域窗口最右侧的 Choose 按钮 . 出现一个对话框 .

    • 导航到要将文件移动到的文件夹 . 如果需要,创建 New Folder . 单击对话框右下角的 Choose 按钮,然后关闭 Group Info/File Info 窗口 .

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

    • Move the actual files

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

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

    小贴士

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

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

    • 完成步骤2后,每隔几分钟就停止并构建一些文件 . 构建将告诉你你是否造成了太大的伤害 .

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

    • 如果在过去你发现我做了什么的文件,混淆了我正在移动的当前文件组的名称和旧的,不再链接的文件,坚持认为Xcode导入它们是因为你认为它很密集 .

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

  • 22

    In Xcode 5 or Xcode 6:

    • 创建在Finder中映射到您的组的文件夹

    • 将文件移动到Finder中的那些文件夹中

    • 选择左侧Xcode侧栏中的每个红色文件

    • 单击按钮"Show/Hide Utilities"以显示右侧边栏(参见图)

    • 在"Identity and Type"中,单击微小按钮并选择文件位置(参见图)

    enter image description here

    干杯 .

  • 171

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

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

    • 在Xcode文件夹树中创建新组,并根据需要将文件组织到它们中 .

    • 在Finder中创建匹配的物理文件夹树,并将物理文件组织到其中,以匹配您在步骤1中执行的操作 .

    • Xcode中的所有引用现在都应该是红色的(没关系!) .

    • 从身份和类型管理器中,选择要重新定位的Xcode中的 Group ,然后单击信息窗格中的文件夹图标:

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

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

    奖励积分!

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

  • 3

    我发现解决XCode令人震惊的设计最可靠的方法是在Finder中整理所有文件,原因有两个:

    • Finder没有't make 1469615 , unlike XCode'的GUI

    • 在Finder中组织完成后,您可以将整个Finder文件夹拖放到XCode中,并且......它完全按照您的要求进行操作,不费吹灰之力

    即使在移动现有的XCode文件时,也可以更快地执行此操作:

    • 在Finder中选择文件

    • 在Finder中为它们创建一个文件夹

    • 将它们拖放到文件夹中(自动移动它们)

    • 将Finder文件夹拖放到Xcode中(自动:创建Xcode文件夹,添加Finder文件夹中的每个文件)

    • cmd - 选择您现在在Xcode中看到的每个"red"文件(因为您移动了它们)并点击删除键

    注意:我从不使用“创建带有子组的拖动文件夹”选项,因为在XCode 3中,它通常是无可救药的错误并且可能损坏项目 . 苹果显然(恕我直言)不会在内部使用此功能,否则它将永远不会被允许如此错误;如果Apple没有使用它,它通常也不安全使用它 - 它们不擅长测试:)

  • 118

    有一个简单的设置和使用 Command Line Tool - "synx" 在github中可用,完全符合这里所需 .

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

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

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

  • 104

    Xcode 9

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

  • 21

    我使用以下工具来实现它 . Organize Folders in Groups Xcode

    --no-default-exclusions
    
  • 0

    我通常直接在Finder中将文件移动到目录中,然后在“获取信息”对话框中修复XCode中带有红色名称的文件:单击“选择...”按钮并选择文件的新locatoin . 这是我想在XCode中移动文件的第一个响应,它可以工作 .

  • 1

    从Xcode 4.5开始,当您在文件夹结构中拖动时,它会自动转换为Project Navigator中的嵌套组 . 然后,如果您在磁盘上查看(例如,右键单击并选择“在Finder中显示”),则保留文件夹结构 .

    我发现尝试从旧项目中解决问题只是一种痛苦 . 事实证明,删除这些文件并再次将它们拖入更容易 .

  • 5

    要在xcode 4.5中移动文件夹我只是...

    • 从xcode中删除文件/组,然后选择"Remove Reference" .

    • 进入取景器并根据需要移动文件夹/文件 .

    • 完成后,我回到Xcode并选择File-> Add Files to .

    • 确保选中"Copy Items into Destination Group's folder (If needed)"

    • 确保选中"Create Group for any added folder"

    • 确保检查"Add to Target"项目

  • 1

    最简单的XCode 8技术....

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

    • 通过Finder创建目标文件夹

    • 使用“选项”窗格在XCode(文件 - >添加文件)中添加文件夹以选择文件夹参考(不是组)

    • 将文件A,B,C从(旧)组拖到项目导航器中的(新)文件夹引用 . XCode会将文件移动到项目中和磁盘上的文件夹中 .

    完成 .

相关问题