Answers:
您可以在Xcode中执行此操作,而无需在文本编辑器中手动编辑pbxproj文件!
这是如何做:
在Finder中重命名您的源文件夹。最初,这会破坏项目,因为Xcode不会自动检测到虚拟(黄色)项目文件夹指向的实际文件夹的更改时间,因此该文件夹内的所有文件在Xcode中都将变为红色。不用担心,我们将在步骤3中对其进行修复。
在Xcode中,单击左侧边栏中的(现在已损坏的)虚拟文件夹,并将其重命名以与Finder中的名称匹配(您实际上可以将其命名为所需的名称,也可以根本不重命名,但这太疯狂了)。那不会修复文件夹中的红色文件,但是没关系。
在Xcode的右侧工具栏中,单击下面的屏幕快照中显示的图标,以打开文件对话框。选择您以前重命名的文件夹。这会将虚拟文件夹与磁盘上的真实文件夹重新关联,并将自动修复指向其中所有文件的链接。
在构建设置中,搜索旧的文件夹名称,然后手动重命名找到的所有匹配项。通常会有两个,oldfolder / prefix.pch和oldfolder / info.plist,但可能还有其他两个。
全做完了!
编辑:此选项仍在Xcode 5中存在,但默认情况下会被隐藏。要显示它,请在“文本设置”面板上方的检查器中单击稀薄的“身份和类型”标题以将其展开。
我已经做了很多次了:
.pbxproj
使用任何文本编辑器打开项目包内的文件(上下文菜单“ Show Package Contents”)。任务: 在Xcode和Finder中将“播放”重命名为“ Play2”
更改此:
对此:
脚步:
//首先,请在Finder中备份项目!
//以上所有步骤都是直接且没有副作用的// //现在是棘手的部分:在Finder(与.xcodeproj处于同一级别的文件夹)中重命名内部文件夹(图像中的中间列)
这是在XCode4中有效重命名项目的方法(包括文件文件夹):
首先-不要重命名Xcode项目!!!
如果需要的话,可能是下面的问题-我从没有使它起作用,最终创建了一个新项目,并从头开始复制现有文件。Xcode是如此啊....它有很多非生产性的东西,例如也尝试将文件从“名称”重命名为“名称”。好吧,玩得开心。
我找到了答案或解决方法:右键单击“显示包内容”打开pbxproj文件,然后在其中编辑project.pbxproj文件-您必须重命名一个名为path的引用以及其他一些内容-只需搜索文件夹名称添加“ /”。
这就对了。希望它能帮助一些人。
在检查了上面的各种答案并尝试了一下之后,我为自己总结了一下。假设当前项目名称为ProjAbc,并且要将其重命名为ProjDef:
退出该项目的Xcode。
在Finder中,将文件夹复制到ProjAbc.xcodeproj进行备份。
在Finder中,如果您认为需要它来适应新的项目名称,则可以免费重命名ABOVE ProjAbc.xcodeproj文件夹。
在Finder中,将与ProjAbc.xcodeproj平行的源文件文件夹从ProjAbc重命名为ProjDef
为ProjAbc.xcodeproj打开Xcode(在Project Navigator中,虚拟源文件夹ProjAbc中的所有文件均为红色)。
在Xcode中,在左侧边栏的“项目导航器”中单击(现在已断开)虚拟文件夹,并将其重命名以与Finder-ProjDef中的名称匹配。那还不能解决文件夹中的红色文件,但是没关系。
在Xcode中(仍在左侧工具栏中选择虚拟文件夹)在右侧工具栏中,在“文件”检查器中,单击下面的屏幕快照中显示的图标,以打开一个文件对话框。在文件对话框中,选择以前重命名的文件夹(ProjDef)。这会将虚拟文件夹与磁盘上的真实文件夹重新关联,并将自动修复指向其中所有文件的链接。
在Xcode中的Project Navigator中,单击ProjAbc项目名称,然后将其重命名为ProjDef。
在Xcode中,现在在ProjDef目标(在Project Navigator中的项目ProjDef内部)中打开“构建设置”。重命名* -Info.plist和* -Prefix.pch文件的文件夹名和文件名,以包含ProjDef而不是ProjAbc。
在Xcode中的Project Navigator中,在ProjDef虚拟源文件夹中的“ Supporting Files”中,还要再次将* -Info.plist和* -Prefix.pch文件重命名为包含ProjDef而不是ProjAbc
在Xcode菜单中,按Product / Scheme / Manage Schemes ...(或在Xcode左上方的方案栏中单击“ ProjAbc“>方案名称,然后按” Manage Schemes ...“),然后在对话框中重命名Scheme from ProjAbc到ProjDef,然后按“确定”按钮。如果项目名称由单个单词组成,则可以立即运行它!
在Xcode中,编辑Supporting Files / *-Prefix.pch文件中的顶部注释行,然后用ProjDef替换ProjAbc(2次)。当然,更正此注释是可选的。
退出Xcode。
在Finder中,指向ProjDef.xcodeproj并在文本编辑器中将其打开。(或者在TextWrangler.app中将其打开,或者右键单击并在弹出菜单中按“显示包内容”,然后在TextEdit.app中编辑文件project.pbxproj)。
在文本编辑器中,搜索应该出现一次的“ ProjAbc”(整个单词,区分大小写)(在以下段落中:/ *开始PBXNativeTarget部分* /所在行:productName = ProjAbc;),并将其替换为“ ProjDef”。实际上,项目仍然可以运行!,因此此步骤是可选的。
如果项目名称由2个或多个单独的单词组成,例如“ ProjDef Geh”,则必须执行以下步骤:搜索对虚拟源文件文件夹的Finder文件夹的引用-
从文本编辑器中保存,然后退出文本编辑器。
而已。如上所述,如果项目名称由单个单词组成,则可以在步骤11的结尾直接运行。
我发现上述答案确实很有用,尤其是尼克·洛克伍德的答案。
我刚刚在Xcode 8中重命名了几个文件夹,并且遇到了另外两个问题:A)“缺少工作副本错误” B)核心数据崩溃。
如何解决这两个问题:
A)“ 缺少工作副本错误 ”
我发现以下答案非常有用:Swift 3 / Xcode 8 Upgrade-工作副本错误中缺少100个DerivedData文件
基本上Xcode 8具有严格的源代码控制,这可能导致上述错误。你必须:
我假设您已经启用了源代码管理。如果还没有,或者按照我的指示被卡住,请按照提供的链接中的更详细的指示进行操作。
B)核心数据崩溃
重命名文件夹有时会破坏核心数据。造成这种情况的原因可能有多种,以下是我建议的一些修复:
AppDelegate模型名称不正确。在我的情况下就是这种情况。转到您的AppDelegate并找到let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME")
。确保名称正确。
将来(在发布这篇文章后的几年中,当Apple再次更改Core Data时),或者如果您使用的是Core Data的旧版本,请仔细查看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>
此处有更多详细信息:核心数据模型文件不会在重命名时加载
如果您在项目中拥有源项目的旧参考,则在复制项目时(每次更改都会影响到两个项目),此处提供解决方案
=================================================== ======================