复制并重命名Xcode项目&相关文件夹

时间:2013-07-19 10:50:11

标签: xcode project-management

我希望能够复制整个Xcode项目,重命名项目和相关文件,而不需要Xcode,不需要手动将所有文件重新导入到项目中。

9 个答案:

答案 0 :(得分:359)

这个答案是各种其他StackOverflow帖子和互联网上的教程的高潮,这些帖子和教程被带到一个地方供我将来参考,并帮助其他可能面临同样问题的人。所有信用都在最后给出了其他答案。

复制Xcode项目

  • 在Finder中,将项目文件夹复制到新项目的所需位置。在此阶段不要重命名.xcodeproj文件名或任何关联的文件夹。

  • 在Xcode中,重命名项目。从导航器窗格(左窗格)中选择项目。在“工具”窗格(右窗格)中重命名项目,接受Xcode建议的更改。

  • 在Xcode中,重命名“管理方案”中的方案,同时重命名您可能拥有的任何目标。

  • 如果您没有使用最后包含当前PRODUCT_NAME的默认捆绑包标识符(因此会自动更新),请将您的捆绑包标识符更改为您将用于复制项目的新标识符。< / p>

重命名源文件夹

因此,在执行上述步骤后,您应该有一个重复并重命名的Xcode项目,该项目应该成功构建和编译,但是您的源代码文件夹仍将按原始项目中的名称命名。这不会导致任何编译器问题,但它不是人们在SCM等中导航的最清晰的文件结构。要重命名此文件夹而不破坏所有文件链接,请按照下列步骤操作:

  • 在Finder中,重命名源文件夹。这将破坏您的项目,因为Xcode不会自动检测更改。您的所有xcode文件列表都将丢失与实际文件的链接,因此全部变为红色。

  • 在Xcode中,单击您重命名的虚拟文件夹(这可能就在您的实际.xcodeproject下面的顶部)重命名这个以匹配Finder中的名称,这不会修复任何问题并且严格地说不是必需的步骤,但是文件名匹配很好。

  • 在Xcode中,选择刚刚在导航窗格中重命名的文件夹。然后在“工具”窗格(最右侧)中,单击“位置”下拉菜单下方的深灰色文件夹图标。在此处,导航到查找器中重命名的文件夹,然后单击“选择”。这将自动重新关联所有文件,并且它们在Xcode导航窗格中不应再显示为红色。

Icon to click

  • 在项目/目标构建设置中,搜索旧文件夹名称并手动重命名您找到的任何实例。通常有一个用于prefix.pch,一个用于info.plist,但可能还有更多。

  • 如果您使用的是任何第三方库(Testflight / Hockeyapp / etc),您还需要搜索“图书馆搜索路径”,并在此重命名旧文件名的所有内容。

    < / LI>
  • 对项目可能包含的任何单元测试源代码文件夹重复此过程,过程完全相同。

这应该允许你复制&amp;重命名一个xcode项目和所有相关文件,而不必手动编辑任何xcode文件,并且有可能搞乱。

积分

非常感谢Nick LockwoodPauly Glott为这个问题提供单独的答案。

答案 1 :(得分:25)

由于我在XCode重命名项目时遇到困难,所以我发帖了。

重命名项目既简单又简单但不重命名源文件夹。以下是我在Xcode 4和5中所做的工作的一步一步,感谢下面的链接。

REF链接:
Rename Project.
Rename Source Folder and other files.

1-备份您的项目。

如果您正在使用git,请提交任何更改,在进行任何更改之前复制整个项目文件夹并在时间机器中备份(此步骤不是必需的,但我强烈建议)。

2-打开您的项目。

3 - 慢慢双击或点击项目名称(蓝色顶部图标)上的Enter并将其重命名为您喜欢的任何内容。

  

注意:重命名项目并按“输入”后,它会建议自动更改所有与项目名称相关的条目,   如果你愿意,可以让你取消选择其中一些。选择全部   他们然后点击确定。

4-重命名方案

a)单击停止按钮旁边的菜单,然后选择管理方案。

b)单击慢速点击或点击旧名称方案上的输入并将其重命名为您喜欢的任何内容。

c)点击确定。

5 - 构建并运行以确保其有效。

  

注意:此时应重命名所有重要的项目文件,但项目中创建的类中的注释除外   是创建也不是源文件夹。接下来我们将重命名该文件夹   文件系统。   

6-关闭项目。

7-重命名主文件夹和源文件夹。

8 - 右键单击项目包.xcodeproj文件,然后从上下文菜单中选择“显示包内容”。使用任何文本编辑器打开.pbxproj文件。

9 - 使用新文件夹名称搜索并替换所有原始文件夹名称。

10-保存文件。

11-打开XCode项目,测试它。

12-完成。

答案 2 :(得分:4)

从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

答案 3 :(得分:2)

我在重命名我的iOS项目后使用此脚本。它有助于更​​改目录名称并使名称同步。

  

http://github.com/ytbryan/rename

注意:您需要手动更改方案的名称。

答案 4 :(得分:1)

在书籍"Instant OpenCV for iOS"的示例代码中,我找到了一个bash脚本,用于将项目从一个文件夹复制到另一个文件夹。
做了一点研究我发现了一个博客文章,似乎是该脚本的原始作者:http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html,您可以在其中下载script。我试了一下,然后像这样从终端运行它

    sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>   

工作正常 可以使用文本编辑器打开文件找到其他信息。希望有所帮助

答案 5 :(得分:0)

我使用的是Xcode 6+而我只是这样做:

  • 将项目文件夹中的所有文件复制到新文件夹(使用新名称)。
  • 打开*.xcodeproj or *.xcworkspace
  • 更改项目名称。
  • 点击架构并删除当前的chema并添加新的chema。

已完成,但窗口Xcode和*.xcodeproj or *.xcworkspace的名称仍为<old-name>。然后我做:

  • pop install
  • 打开<new name>.xcworkspace

答案 6 :(得分:0)

还有一件事要尝试!

当我复制所有文件,打开项目并重命名时,所有内容都更改为我的新项目名称​​,除了以供测试目标使用!我收到一个链接器错误,说我丢失了一个名为“myOldProjectname.app”的文件。这是修正它的原因:

  1. 单击您的项目设置并选择您的测试目标 enter image description here

  2. 点击构建设置并搜索“测试主机” enter image description here

  3. 检查这两个文件路径。有可能这两条路径仍然指向您的旧项​​目名称。 enter image description here

  4. 希望有所帮助!

答案 7 :(得分:0)

对于复制项目后遇到故事板崩溃问题的其他人,请转到Identity Inspector下的Main.storyboard。

接下来,检查您当前的模块是否是正确的重命名模块,而不是旧模块。

答案 8 :(得分:0)

我使用简单的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}"

注意:

  1. 此脚本将忽略所有文件,例如.git.DS_Store
  2. 如果旧名称/新名称包含空格
  3. 将无效
  4. 如果您使用pod(未测试),则可能无法正常工作
  5. 不会更改方案名称(无论如何项目运行并正常编译)