我发现上面的答案真的很有用,尤其是尼克·洛克伍德的答案。 我刚刚在Xcode 8中重命名了几个文件夹,遇到了另外两个问题:A)“工作副本丢失错误”B)核心数据崩溃。 如何解决这两个问题: A)“工作副本中缺失错误” 我发现下面的答案非常有用:Swift 3 / Xcode 8 Upgrade - 100's of DerivedData files missing from working copy errors 基本上Xcode 8有严格的源代码控制,这可能会导致上述错误。 1.清理Xcode衍生数据。 1.转到“源代码管理”并单击“刷新状态”。 1.转到源代码管理并单击“提交”;在提交时选择提交菜单左边栏中的所有文件(右键单击-〉全选)。 1.您可能会得到一个错误。 1.关闭“提交”菜单。 1.刷新状态。 1.退出Xcode以关闭项目。 1.重新打开项目,刷新状态,再次提交。 1.这次提交应该会起作用。 1.单击项目-〉清理。 我假设你已经启用了源代码管理,如果你还没有,或者如果你在我的指导下卡住了,只要按照链接中提供的更详细的指导。 B)核心数据崩溃 重命名文件夹有时会搞砸核心数据。有几个可能的原因,为什么会这样,下面是一些修复我可以建议: 1.不正确的AppDelegate模型名称。在我的情况下就是这种情况。转到您的AppDelegate并查找let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME")。确保名称正确。 在未来(在这篇文章发表几年后,当苹果再次修改核心数据时),或者如果你使用的是旧版本的核心数据,仔细看看AppDelegate。那里可能有一些奇怪的东西正在扰乱你的核心数据。 1.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>
更多详情请点击此处:Core Data model files does not load on rename 1.如果以上两种方法都不起作用,请尝试1)删除实体,然后添加另一个相同的实体,或者2)删除xcdatamodeld,然后添加另一个相同的数据模型(并确保新xcdatamodeld的名称与AppDelegate和其余代码中的名称相匹配)。永远不要对实时应用程序执行此操作-或者,如果您执行此操作,确保在执行此操作时正确迁移核心数据。
9条答案
按热度按时间qq24tv8q1#
您可以在Xcode中执行此操作,而无需在文本编辑器中手动编辑pbxproj文件!
具体方法如下:
1.在Finder中重命名源文件夹。这会在一开始破坏项目,因为Xcode不会自动检测虚拟(黄色)项目文件夹所指向的真实的文件夹何时发生更改,因此该文件夹中的所有文件在Xcode中将变为红色。不要担心,我们将在步骤3中修复它。
1.在Xcode中,点击左侧边栏中的虚拟文件夹(现在坏了),并将其重命名为Finder中的名称(实际上你可以随意命名它,或者根本不重命名它,但这将是疯狂的)。
1.在Xcode的右侧边栏中,点击下面截图中的图标,打开一个文件对话框,选择你之前重命名的文件夹,这将重新关联虚拟文件夹和磁盘上的真实的文件夹,并自动修复其中所有文件的链接。
1.在生成设置中,搜索旧文件夹名称并手动重命名找到的任何匹配项。通常有两个文件夹,oldfolder/prefix.pch和oldfolder/info.plist,但也可能有其他文件夹。
好了!
编辑:这个选项在Xcode 5中仍然存在,但默认情况下隐藏了。要显示它,请单击“文本设置”面板上方检查器中的“身份和类型”标题将其展开。
0x6upsns2#
我做过很多次了:
.pbxproj
文件。*搜索并用新文件夹名替换任何出现的原始文件夹名。
gopyfrb33#
任务:在Xcode和Finder中将“Play”重命名为“Play 2”
更改此内容:
对此:
步骤:
//首先,请在Finder中备份项目!
//以上所有步骤都很简单,没有副作用////现在是棘手的部分:在Finder中重命名内部文件夹(图片中的中间列)(与.xcodeproj处于同一级别)
ryevplcw4#
下面是如何在XCode 4中有效地重命名项目(包括文件夹):
1.在XCode中完全关闭所有打开的项目以防止出现任何问题
1.将相关项目复制到新文件夹(重要信息:保留旧项目的备份)
1.打开项目
1.在XCode 4中重命名项目本身(双击项目名称),更改名称并按照步骤操作(所有操作都是yes)
1.进入产品,管理方案,重命名方案(双击方案名称)
1.关闭项目(确保已完全关闭,否则后续步骤将无法执行)
1.在Finder中,转到Project文件夹,右键单击.xcodeproj文件,然后选择“显示包内容”选项
1.然后右键单击.pbxproj文件并使用TextEdit打开它
1.替换所有出现的项目所在的文件夹名称(将旧项目名称替换为新项目名称)
1.保存文件
1.再次打开项目并构建它!
bq8i3lrv5#
在替换 *.pbxproj文件中的值时,您需要注意另一个问题。如果您的旧文件夹名称是FooBar,则在 *.pbxproj文件中会有一个如下所示的条目:
路径=脚踏板
假设您的新文件夹名称为Foo Bar,也就是说,您要引入一个空格,那么,该行应该变为
path =“脚踏杆”
如果你只是简单的查找和替换,结果会是一个Xcode无法解析的 *.pbxproj文件,如果你的新文件夹名称有一个空格,而旧文件夹名称没有空格,请确保包含双引号。
y4ekin9u6#
在检查了上面的各种答案并亲自尝试之后,我总结了一下。让我们假设当前的项目名称是ProjAbc,并且您希望将其重命名为ProjDef:
1.退出该项目的Xcode。
1.在Finder中,复制文件夹ABOVE ProjAbc.xcodeproj以进行备份。
1.在Finder中,如果你觉得需要它来适应新的项目名称,可以自由地重命名文件夹ABOVE ProjAbc.xcodeproj。
1.在Finder中,将与ProjAbc.xcodeproj并行的源文件文件夹从ProjAbc重命名为ProjDef
1.打开Xcode for ProjAbc.xcodeproj(在项目导航器中,虚拟源文件夹ProjAbc中的所有文件都将显示为红色)。
1.在Xcode中,点击左侧边栏中项目导航器中的虚拟文件夹(现在已损坏),并将其重命名为Finder - ProjDef中的名称,这还不能修复文件夹中的红色文件,但没关系。
1.在Xcode中,(仍然选择左侧边栏中的虚拟文件夹)在右侧边栏的文件检查器中,单击下面屏幕截图中显示的图标以打开文件对话框。在文件对话框中,选择您之前重命名的文件夹这将使虚拟文件夹与磁盘上的真实的文件夹重新关联,并将自动修复指向. x1c 0d1x中所有文件的链接
k2fxgqgv7#
首先-不要重命名Xcode项目!!!
如果你必须这样做,下面的可能是它-我从来没有得到它的工作,结束了创建一个新的项目,并开始在现有的文件复制所有。Xcode是如此啊...它有这么多的非生产性的东西,比如也尝试重命名一个文件从“名称”到“名称”。好吧,我们玩得开心。
我找到了答案或如何解决这个问题:右键单击“Show Package Content”打开pbxproj文件,在其中编辑一个项目.pbxproj文件-您必须重命名一个名为path的引用和一些其他内容-只需搜索添加了“/"的文件夹名称。
就这样。希望能帮上忙。
t3psigkw8#
我发现上面的答案真的很有用,尤其是尼克·洛克伍德的答案。
我刚刚在Xcode 8中重命名了几个文件夹,遇到了另外两个问题:A)“工作副本丢失错误”B)核心数据崩溃。
如何解决这两个问题:
A)“工作副本中缺失错误”
我发现下面的答案非常有用:Swift 3 / Xcode 8 Upgrade - 100's of DerivedData files missing from working copy errors
基本上Xcode 8有严格的源代码控制,这可能会导致上述错误。
1.清理Xcode衍生数据。
1.转到“源代码管理”并单击“刷新状态”。
1.转到源代码管理并单击“提交”;在提交时选择提交菜单左边栏中的所有文件(右键单击-〉全选)。
1.您可能会得到一个错误。
1.关闭“提交”菜单。
1.刷新状态。
1.退出Xcode以关闭项目。
1.重新打开项目,刷新状态,再次提交。
1.这次提交应该会起作用。
1.单击项目-〉清理。
我假设你已经启用了源代码管理,如果你还没有,或者如果你在我的指导下卡住了,只要按照链接中提供的更详细的指导。
B)核心数据崩溃
重命名文件夹有时会搞砸核心数据。有几个可能的原因,为什么会这样,下面是一些修复我可以建议:
1.不正确的AppDelegate模型名称。在我的情况下就是这种情况。转到您的AppDelegate并查找
let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME")
。确保名称正确。在未来(在这篇文章发表几年后,当苹果再次修改核心数据时),或者如果你使用的是旧版本的核心数据,仔细看看AppDelegate。那里可能有一些奇怪的东西正在扰乱你的核心数据。
1.xcdatamodeld中的型号名称不正确。请转到Finder并在文本编辑器中打开.xcdatamodeld。
检查以下内容:
更多详情请点击此处:Core Data model files does not load on rename
1.如果以上两种方法都不起作用,请尝试1)删除实体,然后添加另一个相同的实体,或者2)删除xcdatamodeld,然后添加另一个相同的数据模型(并确保新xcdatamodeld的名称与AppDelegate和其余代码中的名称相匹配)。永远不要对实时应用程序执行此操作-或者,如果您执行此操作,确保在执行此操作时正确迁移核心数据。
tv6aics19#
如果你有旧的引用源项目到你的项目,当复制项目(每一个变化都影响到两个项目)在这里的解决方案
========================================================================