我希望能够复制整个Xcode项目,重命名项目和相关文件,而不会让Xcode出现问题,并且不必手动重新导入所有文件到项目中。
我希望能够复制整个Xcode项目,重命名项目和相关文件,而不会让Xcode出现问题,并且不必手动重新导入所有文件到项目中。
本回答是将各种其他StackOverflow帖子和互联网教程汇总到一个地方以供我日后参考,并帮助任何可能面临相同问题的人。所有其他答案在结尾处给出信用。
在Finder中,将项目文件夹复制到新项目所需位置。此阶段不要重命名 .xcodeproj
文件名称或任何关联文件夹。
在Xcode中,重命名项目。从导航器窗格(左窗格)中选择您的项目。在实用程序窗格(右窗格)中重命名您的项目,接受Xcode建议的更改。
在Xcode中,在“管理方案”中重命名计划,还要重命名任何目标。
如果您没有使用包含当前 PRODUCT_NAME
结尾的默认Bundle Identifier(因此会自动更新),则将您的Bundle Identifier更改为您将用于复制的新项目。
因此,在按照上述步骤操作后,您应该有一个重复命名的Xcode项目,可以成功构建和编译,但源代码文件夹仍将以原始项目中的名称命名。这不会导致任何编译器问题,但对于人们在SCM等中浏览的最清晰的文件结构。要重命名此文件夹而不会破坏所有文件链接,请按照以下步骤操作:
在Finder中,重命名源文件夹。这将使您的项目出现故障,因为Xcode不会自动检测更改。您的所有Xcode文件列表都将失去与实际文件的链接,因此将全部变为红色。注意:您可能需要首先执行第2步,然后再返回此步骤。
在Xcode中,单击您重命名的虚拟文件夹(这很可能就在您实际的.xcodeproject
正下方),将其重命名为与Finder中的名称匹配。这不会修复任何问题,严格来说也不是必需的步骤,但文件名匹配起来很好。
在Xcode中,选择您刚刚在导航窗格中重命名的文件夹。然后,在实用程序窗格(最右边)中单击看起来像深灰色文件夹的图标,就在“位置”下拉菜单的下面。从这里,导航到Finder中的重命名文件夹,然后单击“选择”。这将自动重新关联所有文件,它们应该不再在Xcode导航窗格中显示为红色。
在项目/目标构建设置中搜索旧文件夹名称并手动重命名找到的任何出现。通常有一个prefix.pch
和一个Info.plist
,但可能还有更多。
如果您正在使用任何第三方库(Testflight/Hockeyapp等),您还需要搜索“ Library Search Paths”并在此处重命名旧文件名的任何出现。
对于您的项目可能包含的任何单元测试源代码文件夹,请重复此过程,该过程相同。
这应该允许您复制和重命名Xcode项目以及所有相关文件,而无需手动编辑任何Xcode文件,并冒着弄乱事情的风险。
非常感谢Nick Lockwood和Pauly Glott为解决此问题提供了单独的答案。
我发布这篇文章是因为在 XCode
中重命名项目时一直很困难。
重命名项目很好,也很简单,但是这并不会将源文件夹的名称改变。下面是我所做的步骤,可以在Xcode 4和5中完美运行,感谢以下链接的帮助。
参考链接:
重命名项目。
重命名源文件夹和其他文件。
1- 备份你的项目。
如果您使用的是Git,请提交任何更改,在进行任何更改之前复制整个项目文件夹并通过时间机器进行备份(这一步不是必需的,但我强烈推荐)。
2- 打开你的项目。
3- 在 Project 名称(蓝色顶部图标)上缓慢双击或按 Enter 并将其重命名为您喜欢的任何名称。
注意:在重命名项目后按“enter”键,它会建议自动更改所有与项目名称相关的条目,并允许您取消选择其中的一些。选择所有条目并单击“确定”。
4- 重命名 Scheme
a) 单击停止按钮旁边的菜单,然后选择 Manage Schemes。
b) 单击旧名称方案上的单击或按Enter,并将其重命名为您喜欢的任何名称。
c) 点击确定。
5 - 构建并运行以确保它有效。
注:此时,除创建项目时创建的类中的注释和源文件夹外,所有重要的项目文件都应该被重命名。接下来,我们将在文件系统中重命名文件夹。
6- 关闭项目。
7- 重命名主文件夹和源文件夹。
8- 右键单击项目束.xcodeproj
文件,从上下文菜单中选择“显示包内容”,然后使用任何文本编辑器打开.pbxproj文件。
9- 搜索并替换所有原始文件夹名称出现的位置为新文件夹名称。
10- 保存文件。
11- 打开XCode项目,进行测试。
12- 完成。
有一个工具可以在Xcode中重命名项目,我还没有试过它,无法发表评论。 https://github.com/appculture/xcode-project-renamer
从XCode 7开始,这变得更加容易了。
苹果已经在他们的网站上记录了这个过程: 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
./rename.sh 旧名称 新名称
#!/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
的文件 sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>
运行正常。
可以通过文本编辑器打开文件查看其他信息。希望这有所帮助。
还有一件事要尝试!
当我复制了所有文件,打开项目并重命名后,除了测试目标之外,一切都变成了我的新项目名称。我收到了一个链接器错误,说我缺少一个名为“myOldProjectname.app”的文件。以下是解决方法:
点击您的项目设置并选择您的测试目标
点击构建设置并搜索“test host”
检查这两个文件路径。很可能这两个路径仍然指向您的旧项目名称。
希望能帮到您!
对于其他在复制项目后遇到故事板崩溃问题的人,请前往“Identity Inspector”下的Main.storyboard。
接下来,检查当前模块是否为正确重命名的模块,而不是旧的模块。
我使用 Xcode 6+,只需执行以下操作:
*.xcodeproj 或 *.xcworkspace
完成后,但是 Xcode 窗口和 *.xcodeproj 或 *.xcworkspace
的名称仍为 <old-name>
。然后执行以下操作:
pop install
<new name>.xcworkspace