我希望能够复制整个Xcode项目,重命名项目和相关的文件,而不需要使用Xcode,也不需要手动将所有文件重新导入到项目中。
这个答案是围绕互联网的各种其他StackOverflow文章和教程的顶点,它们被带到一个地方供我将来参考,并帮助其他任何可能面临同样问题的人。最后给出的其他答案均为满分。
复制Xcode项目
在finder中,将项目文件夹复制到新项目的所需位置。在此阶段不要重命名.xcodeproj文件名或任何关联的文件夹。
在Xcode中,重命名项目。从导航器窗格(左窗格)中选择项目。在实用程序窗格(右窗格)中,重命名项目,接受Xcode建议的更改。
在Xcode中,重命名"管理方案"中的方案,还可以重命名您可能拥有的任何目标。
如果您没有使用在末尾包含当前产品名称的默认捆绑标识(这样将自动更新),那么将您的捆绑标识更改为将用于重复项目的新捆绑标识。
重命名源文件夹
因此,在执行上述步骤之后,您应该拥有一个复制的、重命名的Xcode项目,该项目应该能够成功地构建和编译,但是您的源代码文件夹仍然会像在原始项目中那样命名。这不会导致任何编译器问题,但对于在SCM中导航的人来说,它不是最清晰的文件结构。要在不中断所有文件链接的情况下重命名此文件夹,请执行以下步骤:
在查找器中,重命名源文件夹。这将中断您的项目,因为Xcode不会自动检测更改。所有Xcode文件列表都将丢失与实际文件的链接,因此都将变为红色。
在Xcode中,单击您重命名的虚拟文件夹(这很可能在顶部,就在您的实际.xcodeproject下),重命名此文件夹以匹配查找程序中的名称,这不会修复任何问题,严格来说这不是必需的步骤,但文件名匹配很好。
在Xcode中,选择刚刚在导航窗格中重命名的文件夹。然后在实用程序窗格(最右边)中,单击"位置"下拉菜单下看起来像深灰色文件夹的图标。从这里,导航到查找器中重命名的文件夹,然后单击"选择"。这将自动重新关联所有文件,并且它们在Xcode导航窗格中不再显示为红色。
在"项目/目标生成"设置中,搜索旧文件夹名称,并手动重命名找到的所有事件。通常有一个用于prefix.pch和一个用于info.plist,但可能还有更多。
如果您使用任何第三方库(testfirght/hockeyapp/etc),您还需要搜索"库搜索路径",并在此处重命名出现的任何旧文件名。
对项目可能包含的任何单元测试源代码文件夹重复此过程,过程相同。
这将允许您复制和重命名Xcode项目和所有相关文件,而无需手动编辑任何Xcode文件,并可能造成混乱。
信用
感谢Nick Lockwood和Pauly Glott为这个问题提供了单独的答案。
- 复制Xcode4项目
- 重命名Xcode4项目和实际文件夹
- 在遵循上面的内容之后,我搜索了这个孔项目中的"旧名称",找到了需要更改的内容(前缀头),然后用"新名称"在另一个地方编译了OK。很好的教程-正是我需要的。(使用xcode 5.0.1/ios 7.0测试)
- 这似乎并没有让我一路走到那里(在这里的Xcode5.0.2上,有一个从4.6.3迁移到5.0.0的项目)。在*.xcodeproj/project.pbxproj文件中有许多包含原始文件夹路径的内容。特别是,构建失败,因为它一直在原始文件夹中查找info.plist。
- 实际上,没关系,info.plist是我的错误,没有跟踪第一部分的最后一颗子弹(找不到,现在找到了)。但现在看来,构建方案存在问题,它在错误的目录中查找PCH文件…。似乎这让我大半路走到了那里。谢谢!
- 注意:删除派生的数据文件夹将有望清除任何与PCH相关的问题。这些是在我完成了一半的步骤后创建的项目时创建的(随后重命名文件夹会使它出错)。
- 作为一种好奇心,这里有一种古老的方法来做这件事…stackoverflow.com/questions/10006482/…(丹尼尔的答案)
- 要更改应用程序的名称,则需要转到info.plist并在"bundle display name"中写入所需的名称。stackoverflow.com/a/196069/1250021(堆叠溢出)
- 在我的代码中,我有一个指向本地HTML文件的路径。我使用nsbundle*thisbundle=[nsbundle mainbundle];path=[thisbundle pathforresource:@"cgv"of type:@"html"];但它仍然使用到我的旧源文件夹的路径。我错过了什么?
- [NSBundle mainBundle]不会受此影响,因为编译构建后,在运行时引用的bundle将不受此影响。我建议您先清理您的项目,然后再清理关联的构建文件夹。(显示"产品"菜单时按住ALT键)
- 我跑步时遇到问题。获取"nsInternalConsiencyException",原因:'cannot load nib in bundle'nsbundle(loaded)'(已加载)'(已加载)'(已加载)'(已加载)'(名为"newname")是否有其他人看到此情况?我重新命名了故事板以匹配新的项目名称。
- 在搜索之后,我的info.plist中的"主情节提要文件基名称"被更改为"主NIB文件基名称"。我把这个贴在这里,以防有人碰到这个问题。谢谢你的指导-其他一切都很好。
- 这对我有很大帮助。谢谢您。我只是想补充一下,在打开重复的项目之前,我可以重命名源文件夹。不需要返回到流程的第二步,因为Xcode在项目的初始启动时找到了包含文件夹的右侧。
- 做得很好,应用程序复制并在5分钟内运行。
- 这是有帮助的,但是设置一个新的方案也帮助了我(在这个答案的评论中找到)stackoverflow.com/questions/19442867/…
- 我仍然收到一个编译器错误,这个项目可能在派生数据文件夹中找不到文件。即使删除了派生数据,它仍然有错误。有什么帮助吗?Xcode 6.3 iOS 8.3版
- 这个答案来自天堂
- Xcode7.1.1在第一个跨栏时为我崩溃-重命名项目。会调查的,但有人发现了吗?
- 这是最有效的答案
- 最后一步我必须做的是:我在构建阶段>编译源代码中有旧的路径。所以我不得不展开导航窗格中的文件夹(左),然后我看到文件名(文件链接)是红色的。然后我按照相同的步骤将红色文件名转换为黑色文本。XCOD7.2.1
- "管理方案"位于:菜单栏>项目>方案>管理方案(Xcode 7.2.1)
- XCode 7.3.1."In Xcode,click on the virtual folder which you renamed…"Afict,Xcode did this for me automatically.The name of the project in the Nav Pane has changed."In Xcode,select the folder you just renamed…..This crashes Xcode.See also comment by@Hughteotl
- 当你在项目中有椰子融合的时候,它是如何处理的。I found a helpful link to handle that as well:H4CKISH.com/2015/01/22/Renaming-Your-Cococates-IOS-Project
- 好极了!我的应用程序汇编和工作只是很好,但我有hundreds of"missing file"warnings。It turns out you just need to stage or commit the delegations or else xcode complains.Thanks to stackoverflow.com/questions/25338428/&Hellip;
- This did't work for me-the magic"this should fix it"step did not result in the files all changing from red to black.I ended up having to edit.PBxproj as [email protected] tiger's answer.
- I got stuck on the first step-"rename the project"where is that functionality?他在《老式面包》里没发现这一点。
- Changing'Framework Search Paths'Helped me in Xcode 9.3
- Didn't really work for me with XCode 9.4-had to edit a few files,mostly acme.xcodecproj/project.pbxproj hard to believe apple doesn't provide this out of the box in this day and age.世界知识界如此之多的轻松,以基于购买系统的Whicher JVM为基础(SBT/MAVEN/GRADLE etc)
- In addition in XCode 10.1,I found I had to do a few more steps similar to above on the test folders and had to change the path of info.plist but for the rest it worked perfectly
我张贴这篇文章是因为我在重命名XCode中的一个项目时一直在挣扎。
重命名项目既好又简单,但这不会重命名源文件夹。下面是我在xcode 4和xcode 5中所做的一步一步的工作,感谢下面的链接。
参考链接:重命名项目。重命名源文件夹和其他文件。
1-备份项目。
如果您使用的是Git,请提交任何更改,在进行任何更改之前复制整个项目文件夹并备份Time Machine(这一步不是必需的,但我强烈建议)。
2-打开项目。
3-双击或点击项目名称(蓝色顶部图标)上的Enter键,然后将其重命名为您喜欢的名称。
NOTE: After you rename the project and press ‘enter’ it will suggest to automatically change all project-name-related entries and
will allow you to de-select some of them if you want. Select all of
them and click ok.
4-重命名方案
a)单击"停止"按钮旁边的菜单,然后选择"管理方案"。
b)在旧名称方案上单击或按Enter键,然后将其重命名为您喜欢的名称。
点击"确定"。
5-构建并运行以确保其正常工作。
NOTES: At this point all of the important project files should be renamed except the comments in the classes created when the project
was created nor the source folder. Next we will rename the folder in
the file system.
6-关闭项目。
7-重命名主文件夹和源文件夹。
8-右键单击项目包.xcodeproj文件,从上下文菜单中选择"显示包内容"。用任何文本编辑器打开.pbxproj文件。
9-搜索并用新文件夹名替换出现的原始文件夹名。
10-保存文件。
11-打开Xcode项目,测试它。
12 -完成。
- The question was for duplicating and then renaming the copied project.This answer is just for renaming an existing project.
- 对我来说,这是一个简单的方法。Just copy the original project folder,E.G.Myproject,returnively to"Mynewproject".这些开放Mynewproject and proceed with FS-UTIG's instructions.I'm surprised that neither android studio nor xcode provide a"file->clone project"option which would be so convent.为某些人制定的特殊Plugin项目(NSHIPSER.com/XCode-Plugins)?
- Only method that worked for me-xcode 8.2
- Step 10.1-If you have bridging header and/或entitlements files,Rename those to reflect your new name.If using cococadents,edit the name in your pod file.
从Xcode7开始,这变得容易多了。
苹果公司在其网站上记录了这一过程:https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/renamingproject/renamingproject.html
更新:xcode 8链接:http://help.apple.com/xcode/mac/8.0//dev3db3afe4f
- This only works to rename the internals of the app,but externally the folders for the app remain unchanged
重命名iOS项目后,我将使用此脚本。它有助于更改目录名称并使名称同步。
http://github.com/ytbryan/rename
注意:您需要手动更改方案的名称。
在"InstantOpencvforiOS"这本书的示例代码中,我发现了一个bash脚本,它将一个项目从一个文件夹复制到另一个文件夹。做了一点研究,我发现了一篇博客文章,作者似乎是该脚本的原始作者:http://mohrt.blogspot.it/2009/01/renamination-xcode-project-from-command.html,您可以从中下载该脚本。我试了一下,然后像这样从终端运行它
1
| sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create> |
工作良好。使用文本编辑器打开文件时可以找到其他信息。希望有所帮助
我正在使用简单的bash脚本重命名。
用法:./rename.sh oldName newName。
1 2 3 4 5 6 7 8 9 10 11
| #!/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。
如果旧名称/新名称包含空格,则不起作用
如果使用pods(未测试),则可能无法工作。
方案名称不会更改(无论如何,项目运行和编译正常)
对于在复制项目后出现故事板崩溃问题的任何其他人,请转到标识检查器下的main.storyboard。
接下来,检查当前模块是否是正确重命名的模块,而不是旧模块。
还有一件事要尝试!
当我复制了所有的文件,打开项目,并将其重命名时,除了测试目标之外,所有内容都更改为我的新项目名称!我收到一个链接器错误,说我缺少一个名为"myoldprojectname.app"的文件。以下是修复它的方法:
单击项目设置并选择测试目标
单击构建设置并搜索"测试主机"
检查这两个文件路径。很可能这两条路径仍然指向您的旧项目名称。
希望有帮助!
我使用Xcode 6+,我只需要:
- 将项目文件夹中的所有文件复制到新文件夹(使用新名称)。
- 打开*.xcodeproj or *.xcworkspace。
- 更改项目名称。
- 单击模式并删除当前的chema并添加新的chema。
这里已经完成了,但是窗口xcode和*.xcodeproj or *.xcworkspace的名称仍然是。然后我这样做:
- pop install
- 打开.xcworkspace。