我希望能够复制整个 Xcode 项目,重命名项目和相关文件,而不需要 Xcode 思考,并且不必手动将所有文件重新导入项目。
9 回答
这个答案是互联网上各种其他 StackOverflow 帖子和教程的高潮,这些帖子和教程汇集到一个地方供我将来参考,并帮助可能面临同样问题的任何其他人。所有的功劳都归于最后的其他答案。
复制 Xcode 项目
在 Finder 中,将项目文件夹复制到新项目的所需位置。在此阶段不要重命名
.xcodeproj
文件名或任何相关文件夹。在 Xcode 中,重命名项目。从导航器窗格(左窗格)中选择您的项目。在 Utilities 窗格(右窗格)中重命名您的项目,接受 Xcode 建议的更改。
在 Xcode 中,重命名“管理方案”中的方案,同时重命名您可能拥有的任何目标。
如果您没有使用最后包含当前的默认捆绑标识符
PRODUCT_NAME
(因此将自动更新),则将您的捆绑标识符更改为您将用于复制项目的新标识符。
重命名源文件夹
因此,按照上述步骤操作后,您应该有一个复制并重命名的 Xcode 项目,该项目应该可以成功构建和编译,但是您的源代码文件夹仍将按照原始项目中的名称命名。这不会导致任何编译器问题,但它不是人们在 SCM 等中导航的最清晰的文件结构。要重命名此文件夹而不破坏所有文件链接,请按照下列步骤操作:
在 Finder 中,重命名源文件夹。这会破坏您的项目,因为 Xcode 不会自动检测更改。您的所有 Xcode 文件列表都将失去与实际文件的链接,因此都将变为红色。注意:您可能必须先执行第 2 步,然后再返回此步骤。
在 Xcode 中,单击您重命名的虚拟文件夹(这可能在顶部,就在您实际的下方
.xcodeproject
)重命名它以匹配 Finder 中的名称,这不会解决任何问题,并且严格来说不是必需的步骤但是文件名匹配很好。在 Xcode 中,在导航窗格中选择刚刚重命名的文件夹。然后在“实用程序”窗格(最右侧)中单击看起来像深灰色文件夹的图标,就在“位置”下拉菜单下方。从这里,导航到查找器中重命名的文件夹,然后单击“选择”。这将自动重新关联您的所有文件,并且它们不应再在 Xcode 导航窗格中显示为红色。
在您的项目/目标构建设置中,搜索旧文件夹名称并手动重命名您找到的任何匹配项。通常有一个用于 the
prefix.pch
和一个用于Info.plist
,但可能还有更多。如果您使用任何第三方库(Testflight/Hockeyapp/etc),您还需要在此处搜索“库搜索路径”并重命名任何出现的旧文件名。
对您的项目可能包含的任何单元测试源代码文件夹重复此过程,该过程是相同的。
这应该允许您复制和重命名 Xcode 项目和所有相关文件,而无需手动编辑任何 Xcode 文件,并且可能会搞砸事情。
学分
非常感谢Nick Lockwood和Pauly Glott为这个问题提供了单独的答案。
我发布这个是因为我在重命名项目时一直在苦苦挣扎XCode
。
重命名项目既好又简单,但这不会重命名源文件夹。由于下面的链接,这是我在 Xcode 4 和 5 中所做的工作的逐步说明。
REF 链接:
重命名项目。
重命名源文件夹和其他文件。
1-备份您的项目。
如果您使用 git,请提交任何更改,复制整个项目文件夹并在时间机器中备份,然后再进行任何更改(此步骤不是必需的,但我强烈推荐)。
2-打开您的项目。
3-慢速双击或在项目名称(蓝色顶部图标)上按回车键,然后将其重命名为您喜欢的任何名称。
注意:重命名项目并按“输入”后,它会建议自动更改所有与项目名称相关的条目,并允许您根据需要取消选择其中的一些。选择所有这些,然后单击确定。
4-重命名方案
a) 单击停止按钮旁边的菜单并选择管理方案。
b) 在旧名称方案上单击或按回车键,然后将其重命名为您喜欢的任何名称。
c) 单击确定。
5 - 构建并运行以确保其正常工作。
注意:此时所有重要的项目文件都应该重命名,除了项目创建时创建的类中的注释和源文件夹。接下来我们将重命名文件系统中的文件夹。
6-关闭项目。
7-重命名主文件夹和源文件夹。
8-右键单击项目包.xcodeproj
文件并从上下文菜单中选择“显示包内容”。使用任何文本编辑器打开 .pbxproj 文件。
9-搜索任何出现的原始文件夹名称并将其替换为新文件夹名称。
10- 保存文件。
11-打开XCode项目,测试它。
12-完成。
编辑 19 年 10 月 11 日:
在 Xcode 中有一个重命名项目的工具我还没有尝试过足够的评论。 https://github.com/appculture/xcode-project-renamer
从 XCode 7 开始,这变得容易多了。
Apple 在其网站上记录了该过程: https ://developer.apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html
更新:XCode 8 链接: http ://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f
在“Instant OpenCV for iOS”一书的示例代码中,我发现了一个 bash 脚本,它可以将项目从一个文件夹复制到另一个文件夹。
做了一些研究,我发现了一篇似乎是该脚本原作者的博客文章:http: //mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html,其中你可以下载脚本。我试了一下并像这样从终端运行它
sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>
工作正常。
使用文本编辑器打开文件可以找到其他信息。希望有帮助
我正在使用简单的 BASH 脚本进行重命名。
用法:./rename.sh oldName newName
#!/bin/sh
OLDNAME=$1
NEWNAME=$2
export LC_CTYPE=C
export LANG=C
find . -type f ! -path ".*/.*" -exec sed -i '' -e "s/${OLDNAME}/${NEWNAME}/g" {} +
mv "${OLDNAME}.xcodeproj" "${NEWNAME}.xcodeproj"
mv "${OLDNAME}" "${NEWNAME}"
笔记:
- 此脚本将忽略所有文件,例如
.git
和.DS_Store
- 如果旧名称/新名称包含空格将不起作用
- 如果您使用 pod 可能无法工作(未测试)
- 方案名称不会更改(无论如何项目运行和编译正常)
我使用 Xcode 6+,我只是这样做:
- 将项目文件夹中的所有文件复制到新文件夹(使用新名称)。
- 打开
*.xcodeproj or *.xcworkspace
- 更改项目名称。
- 单击模式并删除当前模式并添加新模式。
这里完成了,但是窗口 Xcode 的名称*.xcodeproj or *.xcworkspace
仍然是<old-name>
. 然后我做:
pop install
- 打开
<new name>.xcworkspace
还有一件事要尝试!
当我复制所有文件,打开项目并重命名它时,除了测试目标之外,所有内容都更改为我的新项目名称!我收到一个链接器错误,提示我缺少一个名为“myOldProjectname.app”的文件。这是修复它的方法:
单击您的项目设置并选择您的测试目标
单击构建设置并搜索“测试主机”
检查这两个文件路径。这两条路径可能仍然指向您的旧项目名称。
希望有帮助!
对于在复制项目后遇到故事板崩溃问题的任何其他人,请转到 Identity Inspector 下的 Main.storyboard。
接下来,检查您当前的模块是否是正确的重命名模块而不是旧模块。