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

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

这个答案是围绕互联网的各种其他StackOverflow的post和教程的高潮带到一个地方为我未来的参考,并帮助其他人可能面临同样的问题。 所有的信用是在最后给出的其他答案。

复制一个Xcode项目

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

  • 在Xcode中,重命名该项目。 从导航器窗格(左窗格)中select您的项目。 在“实用程序”窗格(右侧窗格)中,重命名项目,接受Xcode提议的更改。

  • 在Xcode中,重命名“pipe理scheme”中的scheme,也可以重命名你可能拥有的任何目标。

  • 如果您没有使用包含当前PRODUCT_NAME的默认Bundle标识符(因此会自动更新),那么将您的Bundle标识符更改为您将用于重复项目的新标识符。

重命名源文件夹

所以按照上面的步骤,你应该有一个重复的和重命名的Xcode项目,应该build立和编译成功,但是你的源代码文件夹仍然会被命名为原来的项目。 这不会导致任何编译器问题,但它不是人们在SCM中导航的最清晰的文件结构等。若要重命名此文件夹而不中断所有文件链接,请按照下列步骤操作:

  • 在Finder中,重命名源文件夹。 这将打破你的项目,因为Xcode不会自动检测到更改。 所有的xcode文件列表都将失去与实际文件的链接,所以都会变成红色。

  • 在Xcode中,点击你重命名的虚拟文件夹(这可能是正确的在顶部,就在你的实际.xcodeproject下)重命名这个匹配Finder中的名字,这不会修复任何东西,严格来说不是需要的步骤,但很高兴有匹配的文件名称。

  • 在Xcode中,select您在导航窗格中重命名的文件夹。 然后在“实用程序”窗格(最右侧)中,单击位于“位置”下拉菜单下方的深灰色文件夹图标。 从这里,导航到您在查找器中重命名的文件夹,然后单击“select”。 这将自动重新关联您的所有文件,并且不应再在Xcode导航窗格中显示为红色。

点击图标

  • 在您的项目/目标构build设置中,search旧文件夹名称,并手动重命名您find的任何事件。 通常有一个为prefix.pch和一个为info.plist,但可能会有更多。

  • 如果您正在使用任何第三方库(Testflight / Hockeyapp / etc),您还需要search“库searchpath”,并在此处重命名任何旧文件名的出现。

  • 对于您的项目可能包含的任何unit testing源代码文件夹重复此过程,过程是相同的。

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

积分

非常感谢Nick Lockwood和Pauly Glott为这个问题提供了单独的答案。

  • 复制一个XCode 4项目
  • 重命名xcode 4项目和实际的文件夹

我发布这个,因为我一直在XCode重命名项目时一直在挣扎。

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

REF链接:
重命名项目。
重命名源文件夹和其他文件。

1-备份您的项目。

如果你正在使用git,提交任何修改,复制整个项目文件夹并在时间机器上进行备份,然后再进行修改(这一步不是必需的,但我强烈build议)。

2-打开你的项目。

3-缓慢双击或按下项目名称(蓝色顶部图标)上的input,并将其重新命名为任何你喜欢的。

注意:重命名项目并按下“enter”后,它会build议自动更改所有项目名称相关的条目,并允许您取消select其中的一些,如果你想。 select所有这些,然后单击确定。

4-重命名计划

a)点击停止button旁边的菜单,然后selectpipe理scheme。

b)单击单击或在旧名称scheme上按回车,然后将其重命名为任何您喜欢的名称。

c)点击确定。

5 – build立并运行,以确保它的工作。

注意:此时,除了创build项目时创build的类中的注释和源文件夹之外,所有重要的项目文件都应该重命名。 接下来我们将重命名文件系统中的文件夹。

6-closures项目。

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

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

9-使用新的文件夹名称search并replace任何出现的原始文件夹名称。

10-保存文件。

11-打开XCode项目,testing一下。

12-完成。

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

苹果已经在他们的网站上logging了这个过程: 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

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

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

这里完成了,但是窗口Xcode和*.xcodeproj or *.xcworkspace <old-name>仍然是<old-name> 。 那我呢:

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

还有一件事要尝试!

当我复制我的所有文件,打开项目,并重命名它, 除了testing目标,一切都改成我的新项目名称! 我有一个链接器错误,说我错过了一个名为“myOldProjectname.app”的文件。 这是什么修复它:

  1. 点击您的项目设置并select您的testing目标 在这里输入图像描述

  2. 点击构build设置并search“testing主机” 在这里输入图像描述

  3. 检查这两个文件path。 有可能是这两条path仍然指向你的旧项目名称。 在这里输入图像描述

希望有所帮助!

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

http://github.com/ytbryan/rename

注:您将需要手动更改scheme的名称。

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

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

在本书“Instant OpenCV for iOS”的示例代码中,我find了一个bash脚本,用于将项目从一个文件夹复制到另一个文件夹。
做一个小小的研究,我发现了一个似乎是脚本原作者的博客文章: http : //mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html ,其中你可以下载脚本 。 我试了一下,从terminal上运行它

  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}" 

笔记:

  1. 这个脚本将会忽略像.git.DS_Store这样的所有文件
  2. 如果旧名称/新名称包含空格,则不起作用
  3. 如果您使用豆荚(未经testing)可能无法正常工作
  4. scheme名称不会改变(无论如何项目运行和正常编译)