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

我知道如何重命名Xcode 4中的项目,但是如何重命名源文件夹? 问题是在Xcode中重命名项目,只是在Xcode中进行重命名(尽pipe与以前相比有所进步),但为什么Xcode不重命名文件系统中我不知道的文件夹。

你可以在Xcode中做到这一点,而不需要手动编辑文本编辑器中的pbxproj文件!

就是这样:

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

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

  3. 在Xcode的右侧边栏中,点击下面截图中显示的图标,popup一个文件对话框。 select您之前重命名的文件夹。 这将重新关联虚拟文件夹与磁盘上的实际文件夹,并会自动修复所有文件的链接里面。

  4. 在您的构build设置中,search旧的文件夹名称并手动重命名您find的任何事件。 通常会有两个,oldfolder / prefix.pch和oldfolder / info.plist,但也可能有其他的。

全做完了!

在这里输入图像描述

编辑:这个选项仍然存在于Xcode 5中,但默认情况下是有用的隐藏。 要显示它,请在“文本设置”面板上方的检查器中单击薄的“标识和types”标题以将其展开。

我做了几十次:

  • 通过点击Xcode Project Navigator中的标题来重命名项目。
  • closuresXcode。
  • 重命名源文件夹。
  • 在Finder中,用任何文本编辑器打开项目包(上下文菜单“Show Package Contents”)中的.pbxproj文件。
  • 使用新的文件夹名称search并replace任何出现的原始文件夹名称。
  • 保存文件。
  • 打开Xcode项目。

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

改变这个:

在这里输入图像描述

对此:

在这里输入图像描述

脚步:

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

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

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

  • 在保持Xcodeclosures的情况下,重命名Finder中的内部文件夹
  • 右键单击.xcodeproj,select“显示包装内容”
  • 用Mac TextEdit打开.pbxproj文件
  • 用“Play2”search并replace所有的“播放”。 为了保证一切正常,请单击search栏左端的箭头并修改search属性。 将“包含”更改为“全字”,并取消选中“忽略大小写”
  • 保存.pbxproj文件
  • 打开Xcode项目并运行

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

  1. 在XCode中完全closures所有打开的项目,以防止出现任何问题
  2. 将项目复制到一个新的文件夹(重要:保留您的旧项目的备份)
  3. 打开项目
  4. 在XCode4中重命名项目本身(双击项目名称),更改名称并按照步骤(对所有内容都是)
  5. 去产品,pipe理scheme和重命名scheme(双击scheme名称)
  6. closures你的项目(确保完全closures,否则下一步将不起作用)
  7. 在Finder中,转到Project文件夹,右键单击.xcodeproj文件,然后select“Show Package Contents”
  8. 然后右键点击.pbxproj文件并用TextEdit打开它
  9. 将所有出现的文件夹名称replace为用于存在的项目(新项目名称的旧项目名称)
  10. 保存文件
  11. 再次打开项目,并build立它!

首先 – 不重命名一个Xcode项目!

如果你不得不这样做的话,那么我从来没有得到它的工作,最终创build了一个新的项目,并开始在现有的文件中复制。 Xcode是如此啊….它有这么多非生产性的东西,比如也尝试重命名文件从“名称”到“名称”。 好吧,玩得开心。

我find了答案或如何解决这个问题:通过右键单击“显示包内容”打开pbxproj文件,并在那里你编辑一个project.pbxproj文件 – 你必须重命名称为path和一些其他的东西引用 – 只要search文件夹名称加了“/”。

这就对了。 希望它有助于一个人。

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

path= FooBar

假设你的新文件夹名称是Foo Bar。 那就是,你正在引入一个空间。 那么,这条线应该成为

path=“Foo酒吧”

如果你只是做一个简单的查找和replace,结果将是Xcode无法parsing的* .pbxproj文件。 如果您的新文件夹名称有一个空格,并且旧名称没有空格,请确保包含双引号。

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

  1. 退出该项目的Xcode。

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

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

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

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

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

  7. 在Xcode中(在左侧边栏中仍然select虚拟文件夹),在文件检查器中,单击下面截图中显示的图标,popup一个文件对话框。 在文件对话框中,select您之前重命名的文件夹(ProjDef)。 这将重新关联虚拟文件夹与磁盘上的实际文件夹,并会自动修复所有文件的链接里面。 图片显示在文件检查器中单击文件夹图标的位置

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

    • 你会被提示:“重命名项目内容项?”。 点击“重命名”button。
    • 系统会提示您:“您是否希望Xcode在重命名项目和类似操作之前自动创build快照?”。 点击“禁用”或“启用”。 不要紧。
  9. 在Xcode中,现在在ProjDef目标(项目导航器中的项目ProjDef内)中打开“生成设置”。 将* -Info.plist和* -Prefix.pch文件的文件夹名称和文件名重命名为包含ProjDef而不是ProjAbc。

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

  11. 在Xcode菜单中,点击产品/scheme/pipe理scheme…(或点击Xcode左上方scheme栏中的“scheme名称”,然后按下“pipe理scheme…”),在对话框中重新命名schemeProjAbc到ProjDef,然后按“确定”button。 如果项目名称是由单个单词组成的,您可以立即运行它!

  12. 在Xcode中,在支持文件/ * – Prefix.pch文件中编辑顶部注释行,并用ProjDefreplaceProjAbc(2次)。 当然,纠正这个评论是可选的。

  13. 退出Xcode。

  14. 在Finder中,指向ProjDef.xcodeproj并在文本编辑器中打开它。 (或者在TextWrangler.app中打开它,或者,鼠标右键单击并在popup菜单中按下“Show Package Contents”,然后在TextEdit.app中编辑project.pbxproj文件)

  15. 在文本编辑器中,search应该出现一次的“ProjAbc”(整个词,匹配大小写)(在段落中:/ *开始PBXNativeTarget节* /行:productName = ProjAbc;)并将其replace为“ProjDef”。 事实上,项目可以运行,所以这一步是可选的。

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

    • search该行:path = ProjDef Geh;
    • 它会出现一次,在段落/ * ProjDef Geh * /
    • 用下面的代码replace它:path =“ProjDef Geh”;
  17. 从文本编辑器保存,然后退出文本编辑器。

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

我发现上面的答案真的很有用,特别是Nick Lockwood的答案。

我只是重命名了Xcode 8中的几个文件夹,并遇到了两个问题:A) “工作副本错误丢失” B) 核心数据崩溃

如何解决这两个问题:

A)“ 工作副本错误丢失

我发现下面的答案非常有用: Swift 3 / Xcode 8 Upgrade – 工作副本错误中缺less100个DerivedData文件

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

  1. 清理Xcode派生的数据。
  2. 转到源代码pipe理并单击刷新状态。
  3. 转到源代码pipe理,然后单击提交; 提交时select提交菜单左侧栏中的所有文件(右键单击 – >全选)。
  4. 你可能会得到一个错误。
  5. closures提交菜单。
  6. 刷新状态。
  7. 退出Xcodeclosures你的项目。
  8. 重新打开你的项目,刷新状态,再次提交。
  9. 这次提交应该工作。
  10. 点击Project – > Clean。

我假设你已经启用了源代码pipe理。 如果您还没有,或者如果您按照我的指示卡住了,请按照提供的链接中的更详细的说明进行操作。

B) 核心数据崩溃

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

  1. 不正确的AppDelegate模型名称。 我的情况就是这样。 去你的AppDelegate并findlet container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME") 。 确保名称是正确的。

    在将来(本文后几年,当苹果再次改变核心数据)或者如果你使用的是旧版本的核心数据,请仔细看看AppDelegate。 那里可能有一些与你的核心数据混乱的东西。

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

检查以下内容:

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

更多细节在这里: 核心数据模型文件不会加载重命名

  1. 如果上面的两个东西不起作用,尝试1)删除你的实体,然后添加另一个相同的实体或2)删除你的xcdatamodeld,然后添加另一个相同的数据模型(并确保新的xcdatamodeld的名称匹配什么是在你的AppDelegate和你的代码的其余部分)。 切勿使用实时应用程序进行此操作 – 或者如果您这样做,请确保正确迁移您的核心数据。

如果你有源项目的老参考到你的项目中,当dublicate项目(每个变更都影响到这两个项目)这里的解决scheme

  • 来自源项目的Dublicate项目
  • 重命名中断参考问题的源项目的源文件夹。
  • 在dublicate项目中一切都变红select您当前的项目文件夹。 (屏幕截图显示在绿色的计算器中)

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