重命名xcode 4项目和实际文件夹

时间:2011-11-24 21:23:01

标签: xcode xcode4 directory rename

我知道如何在Xcode 4中重命名项目,但是如何重命名源文件夹?问题是在Xcode中重命名项目,只在Xcode中重命名(虽然它与之前的进展相比) - 但为什么Xcode没有重命名我不知道的文件系统中的文件夹。

9 个答案:

答案 0 :(得分:259)

您可以在Xcode中执行此操作,而无需在文本编辑器中手动编辑pbxproj文件!

以下是:

  1. 在Finder中重命名源文件夹。这将最初破坏项目,因为Xcode不会自动检测虚拟(黄色)项目文件夹指向的实际文件夹何时更改,因此该文件夹中的所有文件将在Xcode中变为红色。不要担心,我们将在第3步修复它。

  2. 在Xcode中,单击左侧边栏中的(现已损坏的)虚拟文件夹,并将其重命名为与Finder中的名称相匹配(您实际上可以将其命名为任意内容,或者根本不重命名) ,但那会很疯狂)。这不会修复文件夹中的红色文件,但没关系。

  3. 在Xcode的右侧边栏中,单击下面屏幕截图中显示的图标以显示文件对话框。选择您之前重命名的文件夹。这会将虚拟文件夹与磁盘上的真实文件夹重新关联,并自动修复指向其中所有文件的链接。

  4. 在构建设置中,搜索旧文件夹名称并手动重命名找到的所有匹配项。通常会有两个,oldfolder / prefix.pch和oldfolder / info.plist,但可能还有其他。

  5. 全部完成!

    enter image description here

    编辑:此选项仍在Xcode 5中,但默认情况下有助于隐藏。要显示它,请在“文本设置”面板上方的检查器中单击精简的“标识和类型”标题以展开它。

答案 1 :(得分:112)

我做过几十次:

  • 通过单击然后在Xcode项目导航器中编辑标题来重命名项目。
  • 关闭Xcode。
  • 重命名源文件夹。
  • 从Finder中,使用任何文本编辑器打开项目包内的.pbxproj文件(上下文菜单“显示包内容”)。
  • 使用新文件夹名称搜索并替换原始文件夹名称的任何匹配项。
  • 保存文件。
  • 打开Xcode项目。

答案 2 :(得分:12)

任务: 在Xcode和Finder中将“Play”重命名为“Play2”

改变这个:

enter image description here

对此:

enter image description here

<强>步骤进行:

//在此之前,请在Finder中备份项目!

  • 在Xcode Project导航器中重命名项目//单击项目名称,然后按Enter
  • 在Xcode项目导航器中重命名组//不影响Finder中的文件夹名称
  • 关闭Xcode
  • 在Finder中重命名外部文件夹(图像中的左列)

//以上所有步骤都是直接的,没有副作用 // //现在来了一个棘手的部分:重命名Finder中的内部文件夹(图像中间的列)(与.xcodeproj在同一级别的那个)

  • 在保持Xcode关闭的同时重命名Finder中的内部文件夹
  • 右键单击.xcodeproj,选择“显示包内容”
  • 使用Mac TextEdit打开.pbxproj文件
  • 使用“Play2”搜索并替换所有“播放”。要确保一切顺利,请单击搜索栏左端的箭头并修改搜索属性。 将“包含”更改为“完整字词”,并取消选中“忽略大小写”
  • 保存.pbxproj文件
  • 打开Xcode项目并运行

答案 3 :(得分:4)

以下是如何在XCode4中有效地重命名项目(包括文件夹):

  1. 在XCode中完全关闭所有打开的项目以防止出现任何问题
  2. 将有问题的项目复制到新文件夹(重要:保留旧项目的备份)
  3. 打开项目
  4. 在XCode4中重命名项目本身(双击项目名称),更改名称并按照步骤(对所有内容都是)
  5. 转到产品,管理方案并重命名方案(双击方案名称)
  6. 关闭您的项目(确保完全关闭,否则后续步骤将无效)
  7. 在Finder中转到Project文件夹并右键单击.xcodeproj文件,然后选择“显示包内容”选项
  8. 然后右键单击.pbxproj文件并使用TextEdit
  9. 打开它
  10. 替换项目过去生效的所有文件夹名称(新项目名称的旧项目名称)
  11. 保存文件
  12. 再次打开项目并构建它!

答案 4 :(得分:2)

首先 - 不要重命名Xcode项目!!!

如果必须的话,下面可能是它 - 我从来没有让它工作,最终创建了一个新项目并开始在现有文件中进行复制。 Xcode是如此啊....它有很多非生产性的东西,比如尝试将文件从“Name”重命名为“name”。好吧,好好玩。

我找到了答案或如何解决这个问题:通过右键单击“显示包内容”打开pbxproj文件,然后编辑project.pbxproj文件 - 您必须重命名名为path的引用和其他一些东西 - 只需搜索添加的文件夹名称“/".

就是这样。 希望它有所帮助。

答案 5 :(得分:2)

在替换* .pbxproj文件中的值时,您应该注意另一个问题。如果您的旧文件夹名称是FooBar,则* .pbxproj文件中的条目如下所示:

path = FooBar

假设您的新文件夹名称为Foo Bar。也就是说,你正在引入一个空间。然后,这一行应该成为

path =“Foo Bar”

如果您只是进行简单的查找和替换,结果将是Xcode无法解析的* .pbxproj文件。如果您的新文件夹名称有空格且旧名称没有空格,请务必包含双引号。

答案 6 :(得分:2)

在我检查了上面的各种答案并尝试自己之后,我正在为自己总结。 假设当前项目名称是ProjAbc,并且您想将其重命名为ProjDef:

  1. 退出该项目的Xcode。

  2. 在Finder中,复制文件夹ABOVE ProjAbc.xcodeproj进行备份。

  3. 在Finder中,如果您觉得需要它来适应新的项目名称,请自由重命名文件夹ABOVE ProjAbc.xcodeproj。

  4. 在Finder中,将ProjAbc.xcodeproj中的源文件文件夹从ProjAbc重命名为ProjDef

  5. 为ProjAbc.xcodeproj打开Xcode(在Project Navigator中,虚拟源文件夹ProjAbc中的所有文件都是红色的)。

  6. 在Xcode中,单击左侧边栏中Project Navigator中的(现已损坏的)虚拟文件夹,并将其重命名为与Finder - ProjDef中的名称相匹配。这还不能修复文件夹中的红色文件,但没关系。

  7. 在Xcode中,(仍然在左侧边栏中选择虚拟文件夹),在文件检查器中,单击下面屏幕截图中显示的图标以打开文件对话框。在文件对话框中,选择以前重命名的文件夹(ProjDef)。这会将虚拟文件夹与磁盘上的真实文件夹重新关联,并自动修复指向其中所有文件的链接。 Picture shows where to click the Folder icon in File inspector

  8. 在Xcode中,在Project Navigator中,单击ProjAbc项目名称,并将其重命名为ProjDef。

    • 系统将提示您:“重命名项目内容项目?”。单击“重命名”按钮。
    • 系统会提示您:“您希望Xcode在Project Rename和类似操作之前拍摄自动快照吗?”。单击“禁用”或“启用”。没关系。
  9. 在Xcode中,现在打开ProjDef目标内的“Build Settings”(Project Navigator中的项目ProjDef)。重命名* -Info.plist和* -Prefix.pch文件的foldername和filename以包含ProjDef而不是ProjAbc。

  10. 在Xcode的Project Navigator中,在ProjDef虚拟源文件夹的“支持文件”中,同时重命名* -Info.plist和* -Prefix.pch文件以包含ProjDef而不是ProjAbc

  11. 在Xcode菜单中,按产品/方案/管理方案...(或点击Xcode左上方的方案栏中的“ProjAbc”&gt;方案名称,然后按“管理方案...”)和在对话框中重命名Scheme从ProjAbc到ProjDef,然后按“确定”按钮。如果项目名称由单个单词组成,您可以立即运行它!

  12. 在Xcode中,编辑Supporting Files / * - Prefix.pch文件中的顶部注释行,并用ProjDef替换ProjAbc(2次)。当然,更正此评论是可选的。

  13. 退出Xcode。

  14. 在Finder中,指向ProjDef.xcodeproj并在文本编辑器中打开它。 (在TextWrangler.app中打开它,或者鼠标右键单击并在弹出菜单中按“显示包内容”,然后在TextEdit.app中编辑文件project.pbxproj)

  15. 在文本编辑器中,搜索应出现一次的“ProjAbc”(整个单词,匹配大小写)(在段落中:/ *开始PBXNativeTarget部分* /在行中:productName = ProjAbc;)并将其替换为“ ProjDef”。实际上,项目无论如何都可以运行!所以这一步是可选的。

  16. 如果项目名称由两个或多个单独的单词组成,例如“ProjDef Geh”,则必须执行下一步:搜索对虚拟源文件文件夹的Finder文件夹的引用 -

    • 搜索专栏:path = ProjDef Geh;
    • 它会出现一次,在段落/ * ProjDef Geh * /
    • 将其替换为以下行:path =“ProjDef Geh”;
  17. 从文本编辑器中保存,然后退出文本编辑器。

  18. 就是这样。如上所述,如果项目名称由单个单词组成,则可以在步骤11结束时运行。

答案 7 :(得分:0)

我发现上述答案非常有用,特别是Nick Lockwood的答案。

我刚刚在Xcode 8中重命名了几个文件夹,还遇到了另外两个问题: A)&#34;缺少工作副本错误&#34; B)核心数据崩溃

如何解决这两个问题:

A)&#34; 工作副本错误&#34;

我发现以下答案非常有用:Swift 3 / Xcode 8 Upgrade - 100's of DerivedData files missing from working copy errors

基本上Xcode 8具有严格的源代码控制,可能导致上述错误。你必须:

  1. 清理Xcode派生数据。
  2. 转到“源代码管理”并单击“刷新状态”。
  3. 转到“源代码管理”并单击“提交”;提交时选择提交菜单左侧边栏上的所有文件(右键单击 - &gt;全选)。
  4. 您可能会收到错误。
  5. 关闭“提交”菜单。
  6. 刷新状态。
  7. 退出Xcode关闭您的项目。
  8. 重新打开您的项目,刷新状态,再次提交。
  9. 这次提交应该有效。
  10. 点击项目 - &gt;干净。
  11. 我假设您已经启用了源代码管理。如果您没有,或者如果您按照我的说明操作,请按照提供的链接中的更详细说明进行操作。

    B)核心数据崩溃

    重命名文件夹有时会搞砸Core Data。有几个可能的原因,为什么会这样,以下是我可以建议的一些修复:

    1. 错误的 AppDelegate 型号名称。在我的情况下就是这种情况。转到您的AppDelegate并找到let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME")。确保名称正确。

      将来(此帖后几年,当Apple再次更改Core Data时)或者如果您使用的是旧版Core Data,请仔细查看AppDelegate。可能会有一些时髦的东西弄乱你的核心数据。

    2. xcdatamodeld 中的型号名称不正确。转到Finder并在文本编辑器中打开.xcdatamodeld。

    3. 检查以下内容:

      <plist version="1.0">
        <dict>
           <key>_XCCurrentVersionName</key>
           <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
        </dict>
      </plist>
      

      此处提供更多详细信息:Core Data model files does not load on rename

      1. 如果上述两件事情不起作用,请尝试1)删除您的实体,然后添加另一个相同的实体或2)删除您的xcdatamodeld,然后再添加另一个数据模型&#39; s相同(并确保新的xcdatamodeld的名称与AppDelegate和其余代码中的名称相匹配)。 永远不要使用实时应用 - 或者如果这样做,请确保在执行此操作时正确迁移核心数据。

答案 8 :(得分:0)

如果您的项目中有旧的项目参考,那么当项目出现时(每次更改都会对项目产生影响) 这里的解决方案

  • 来自项目的Dublicate Project
  • 重命名破坏参考问题的源项目的源文件夹。
  • 在dublicate proejct中,一切都变红,选择您当前的项目文件夹。 (截图显示为stackoverflow的绿色勾选答案)

=============================================== =========================