重命名xcode 4项目和实际的文件夹
我知道如何重命名Xcode 4中的项目,但是如何重命名源文件夹? 问题是在Xcode中重命名项目,只是在Xcode中进行重命名(尽pipe与以前相比有所进步),但为什么Xcode不重命名文件系统中我不知道的文件夹。
你可以在Xcode中做到这一点,而不需要手动编辑文本编辑器中的pbxproj文件!
就是这样:
-
在Finder中重命名您的源文件夹。 这将最初中断项目,因为Xcode不会自动检测虚拟(黄色)项目文件夹所指向的实际文件夹何时更改,因此该文件夹内的所有文件都将在Xcode中变为红色。 别担心,我们会在步骤3中修复它。
-
在Xcode中,单击左侧边栏中的(现在已损坏的)虚拟文件夹,并将其重命名为与Finder中的名称相匹配(实际上,您可以将其称为任何您想要的,或者根本不重命名,但那将是疯狂的)。 这不会修复文件夹中的红色文件,但没关系。
-
在Xcode的右侧边栏中,点击下面截图中显示的图标,popup一个文件对话框。 select您之前重命名的文件夹。 这将重新关联虚拟文件夹与磁盘上的实际文件夹,并会自动修复所有文件的链接里面。
-
在您的构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(包括文件夹)中有效地重命名项目:
- 在XCode中完全closures所有打开的项目,以防止出现任何问题
- 将项目复制到一个新的文件夹(重要:保留您的旧项目的备份)
- 打开项目
- 在XCode4中重命名项目本身(双击项目名称),更改名称并按照步骤(对所有内容都是)
- 去产品,pipe理scheme和重命名scheme(双击scheme名称)
- closures你的项目(确保完全closures,否则下一步将不起作用)
- 在Finder中,转到Project文件夹,右键单击.xcodeproj文件,然后select“Show Package Contents”
- 然后右键点击.pbxproj文件并用TextEdit打开它
- 将所有出现的文件夹名称replace为用于存在的项目(新项目名称的旧项目名称)
- 保存文件
- 再次打开项目,并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:
-
退出该项目的Xcode。
-
在Finder中,复制ABOVE ProjAbc.xcodeproj文件夹进行备份。
-
在Finder中,如果您觉得您需要它以适应新的项目名称,请自由重命名文件夹ABOVE ProjAbc.xcodeproj。
-
在Finder中,将源文件文件夹与ProjAbc中的ProjAbc.xcodeproj并行重命名为ProjDef
-
打开Xcode for ProjAbc.xcodeproj(在Project Navigator中,虚拟源文件夹ProjAbc中的所有文件都将变为红色)。
-
在Xcode中,单击左侧边栏的Project Navigator中的(现在已损坏的)虚拟文件夹,并将其重命名为与Finder – ProjDef中的名称相匹配。 这还不能修复文件夹中的红色文件,但没关系。
-
在Xcode中(在左侧边栏中仍然select虚拟文件夹),在文件检查器中,单击下面截图中显示的图标,popup一个文件对话框。 在文件对话框中,select您之前重命名的文件夹(ProjDef)。 这将重新关联虚拟文件夹与磁盘上的实际文件夹,并会自动修复所有文件的链接里面。
-
在Xcode中,在Project Navigator中,单击ProjAbc项目名称,并将其重命名为ProjDef。
- 你会被提示:“重命名项目内容项?”。 点击“重命名”button。
- 系统会提示您:“您是否希望Xcode在重命名项目和类似操作之前自动创build快照?”。 点击“禁用”或“启用”。 不要紧。
-
在Xcode中,现在在ProjDef目标(项目导航器中的项目ProjDef内)中打开“生成设置”。 将* -Info.plist和* -Prefix.pch文件的文件夹名称和文件名重命名为包含ProjDef而不是ProjAbc。
-
在Xcode中的Project Navigator中,在ProjDef虚拟源文件夹的“支持文件”中,再次重命名* -Info.plist和* -Prefix.pch文件以包含ProjDef而不是ProjAbc
-
在Xcode菜单中,点击产品/scheme/pipe理scheme…(或点击Xcode左上方scheme栏中的“scheme名称”,然后按下“pipe理scheme…”),在对话框中重新命名schemeProjAbc到ProjDef,然后按“确定”button。 如果项目名称是由单个单词组成的,您可以立即运行它!
-
在Xcode中,在支持文件/ * – Prefix.pch文件中编辑顶部注释行,并用ProjDefreplaceProjAbc(2次)。 当然,纠正这个评论是可选的。
-
退出Xcode。
-
在Finder中,指向ProjDef.xcodeproj并在文本编辑器中打开它。 (或者在TextWrangler.app中打开它,或者,鼠标右键单击并在popup菜单中按下“Show Package Contents”,然后在TextEdit.app中编辑project.pbxproj文件)
-
在文本编辑器中,search应该出现一次的“ProjAbc”(整个词,匹配大小写)(在段落中:/ *开始PBXNativeTarget节* /行:productName = ProjAbc;)并将其replace为“ProjDef”。 事实上,项目可以运行,所以这一步是可选的。
-
如果项目名称由两个或更多单独的单词组成,如“ProjDef Geh”,则必须执行下列步骤:search对虚拟源文件文件夹的Finder文件夹的引用 –
- search该行:path = ProjDef Geh;
- 它会出现一次,在段落/ * ProjDef Geh * /
- 用下面的代码replace它:path =“ProjDef Geh”;
-
从文本编辑器保存,然后退出文本编辑器。
-
而已。 如上所述,如果项目名称由单个单词组成,则可以在步骤11结束时运行。
我发现上面的答案真的很有用,特别是Nick Lockwood的答案。
我只是重命名了Xcode 8中的几个文件夹,并遇到了两个问题:A) “工作副本错误丢失” B) 核心数据崩溃 。
如何解决这两个问题:
A)“ 工作副本错误丢失 ”
我发现下面的答案非常有用: Swift 3 / Xcode 8 Upgrade – 工作副本错误中缺less100个DerivedData文件
基本上Xcode 8有严格的源代码控制,这可能导致上述错误。 你必须:
- 清理Xcode派生的数据。
- 转到源代码pipe理并单击刷新状态。
- 转到源代码pipe理,然后单击提交; 提交时select提交菜单左侧栏中的所有文件(右键单击 – >全选)。
- 你可能会得到一个错误。
- closures提交菜单。
- 刷新状态。
- 退出Xcodeclosures你的项目。
- 重新打开你的项目,刷新状态,再次提交。
- 这次提交应该工作。
- 点击Project – > Clean。
我假设你已经启用了源代码pipe理。 如果您还没有,或者如果您按照我的指示卡住了,请按照提供的链接中的更详细的说明进行操作。
B) 核心数据崩溃
重命名文件夹有时会搞砸核心数据。 有几个可能的原因,为什么这样,以下是我可以build议的一些修复:
-
不正确的AppDelegate模型名称。 我的情况就是这样。 去你的AppDelegate并find
let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME")
。 确保名称是正确的。在将来(本文后几年,当苹果再次改变核心数据)或者如果你使用的是旧版本的核心数据,请仔细看看AppDelegate。 那里可能有一些与你的核心数据混乱的东西。
-
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)删除你的实体,然后添加另一个相同的实体或2)删除你的xcdatamodeld,然后添加另一个相同的数据模型(并确保新的xcdatamodeld的名称匹配什么是在你的AppDelegate和你的代码的其余部分)。 切勿使用实时应用程序进行此操作 – 或者如果您这样做,请确保正确迁移您的核心数据。
如果你有源项目的老参考到你的项目中,当dublicate项目(每个变更都影响到这两个项目)这里的解决scheme
- 来自源项目的Dublicate项目
- 重命名中断参考问题的源项目的源文件夹。
- 在dublicate项目中一切都变红select您当前的项目文件夹。 (屏幕截图显示在绿色的计算器中)
================================================== ======================