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

我希望能够复制一个完整的Xcode项目,重命名项目和相关的文件没有Xcode的精神,而不必手动重新导入所有文件到项目。

112487 次浏览

这个答案是互联网上其他各种StackOverflow帖子和教程的集大成之处,供我将来参考,并帮助其他可能面临同样问题的人。所有的分数都给最后的其他答案。

复制一个Xcode项目

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

  2. 在Xcode中,重命名项目。从导航窗格(左窗格)中选择您的项目。在Utilities窗格(右边窗格)重命名你的项目,Accept the changes Xcode建议。

  3. 在Xcode中,重命名“管理计划”中的计划,也重命名你可能有的任何目标。

  4. 如果你没有使用默认的Bundle Identifier,它在结尾包含当前的PRODUCT_NAME(因此会自动更新),然后将你的Bundle Identifier更改为你将用于复制项目的新Bundle Identifier。

重命名源文件夹

因此,在遵循上述步骤之后,你应该有一个复制并重命名的Xcode项目,它应该能够成功地构建和编译,但是你的源代码文件夹仍然会被命名为原始项目中的名称。这不会导致任何编译器问题,但它不是SCM中最清晰的文件结构,等等。要重命名此文件夹而不破坏所有文件链接,请执行以下步骤:

  1. 在Finder中重命名源文件夹。这将破坏你的项目,因为Xcode不会自动检测这些变化。所有Xcode文件列表都将失去与实际文件的链接,因此都将变成红色。注意:您可能必须先执行Step 2,然后再返回到此步骤。

  2. 在Xcode中,点击你重命名的虚拟文件夹(这可能就在顶部,就在你实际的.xcodeproject下面)重命名它以匹配Finder中的名称,这不会修复任何东西,严格来说不是必要的步骤,但它很好让文件名匹配。

  3. 在Xcode中,选择刚刚在导航窗格中重命名的文件夹。然后在“实用工具”窗格(最右边)单击看起来像深灰色文件夹的图标,就在下拉菜单“位置”下面。从这里,导航到finder中的重命名文件夹,然后单击“选择”。这将自动地重新关联你所有的文件,他们应该不再出现在Xcode导航窗格的红色。

点击图标

  1. 在您的项目/目标构建设置中,搜索旧文件夹名称并手动重命名您发现的任何事件。通常有一个prefix.pch和一个Info.plist,但可能有更多。

  2. 如果你正在使用任何第三方库(Testflight/Hockeyapp/etc),你还需要搜索“库搜索路径”,并在这里重命名任何旧文件名。

  3. 对项目中包含的任何单元测试源代码文件夹重复这个过程,过程是相同的。

这应该允许你复制&重命名一个Xcode项目和所有相关文件,而不必手动编辑任何Xcode文件,并冒着把事情搞砸的风险。

学分

非常感谢尼克·洛克伍德保利Glott为这个问题提供了单独的答案。

我张贴这个,因为我一直在努力重命名XCode中的一个项目。

重命名项目很好,也很简单,但这并没有重命名源文件夹。下面是我在Xcode 4和5中所做的一步一步的工作,感谢下面的链接。

< p >参考链接:< br > 重命名项目。 < br > 重命名源文件夹和其他文件。 < / p >

备份你的项目。

如果你正在使用git,提交任何更改,在进行任何更改之前复制整个项目文件夹并在时光机中备份(这一步不是必需的,但我强烈推荐)。

2-打开你的项目。

3 -缓慢双击或按enter在项目名称(蓝色顶部图标)和重命名为任何你喜欢的。

在你重命名项目并按“enter”后,它会提示自动更改所有与项目名称相关的条目和 如果你愿意,可以取消选择其中的一些。选择所有

.单击“确定”

4-重命名方案

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

b)在旧的名称方案上单次慢点或按enter键,并将其重命名为任何你喜欢的名称。

c)单击“确定”。

5 -构建并运行以确保它工作正常。

在这一点上,除了类中创建的注释之外,所有重要的项目文件都应该重命名 也没有创建源文件夹。接下来,我们将重命名文件夹 文件系统。
< / p >

6-关闭项目。

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

8 -右键单击项目包.xcodeproj文件,并从上下文菜单中选择“Show Package Contents”。用任何文本编辑器打开.pbxproj文件。

9 -搜索并将任何出现的原始文件夹名称替换为新的文件夹名称。

10-保存文件。

11-打开XCode项目,测试。

12 -完成。

编辑10/11/19:

在Xcode中有一个重命名项目的工具,我还没有尝试过,就不评论了。 https://github.com/appculture/xcode-project-renamer < / p >

我使用这个脚本后,我重命名我的iOS项目。它有助于更改目录名称并使名称保持同步。

http://github.com/ytbryan/rename

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

我使用Xcode 6+,我只做:

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

这里完成了,但是窗口Xcode和*.xcodeproj or *.xcworkspace的名称仍然是<old-name>。然后我会:

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

再试一件事!

当我复制我所有的文件,打开项目,并重命名它时,所有内容都更改为测试目标的新项目名称除了 !我得到了一个链接错误,说我丢失了一个名为“myOldProjectname.app”的文件。下面是解决方法:

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

  2. 点击构建设置,搜索“test host” enter image description here

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

希望有帮助!

对于任何在复制项目后遇到故事板崩溃问题的人,请前往Main。在标识检查器下的故事板。

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

从XCode 7开始,这变得容易多了。

苹果公司在其网站上记录了这一过程: https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html < / p >

更新:XCode 8 link: http://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f < / p >

在本书“即时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>
< br > < p >工作好。 其他信息可以用文本编辑器打开文件。希望这对你有所帮助

我使用简单的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. 方案名称不会更改(无论如何项目正常运行和编译)