复制并重命名 Xcode 项目和相关文件夹 [关闭]

Posted

技术标签:

【中文标题】复制并重命名 Xcode 项目和相关文件夹 [关闭]【英文标题】:Duplicate and rename Xcode project & associated folders [closed] 【发布时间】:2013-07-18 15:13:55 【问题描述】:

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

【问题讨论】:

【参考方案1】:

这个答案是互联网上各种其他 *** 帖子和教程的高潮,这些帖子和教程汇集到一个地方供我将来参考,并帮助可能面临同样问题的任何其他人。所有功劳归于最后的其他答案。

复制 Xcode 项目

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

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

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

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

重命名源文件夹

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

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

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

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

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

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

    对您的项目可能包含的任何单元测试源代码文件夹重复此过程,该过程是相同的。

这应该允许您复制和重命名 Xcode 项目和所有相关文件,而无需手动编辑任何 Xcode 文件,并且可能会搞砸。

学分

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

Duplicating an Xcode 4 Project Renaming xcode 4 project and the actual folder

【讨论】:

按照上述操作后,我刚刚在洞项目中搜索“旧名称”并找到需要更改的内容(前缀标头),并且在另一个地方使用“新名称”编译正常。很棒的教程——正是我需要的。 (使用 Xcode 5.0.1 / ios 7.0 测试) 出于好奇,这里有一种老派的做法……***.com/questions/10006482/…(丹尼尔的回答) 要更改应用程序的名称,您需要转到 info.plist 并在“捆绑显示名称”中写入所需的名称。 ***.com/a/1960069/1250021 Xcode 7.1.1 在第一个障碍对我来说崩溃 - 重命名项目。会调查,但有其他人发现这个吗? 当您在项目中集成了 Cocoapods 时,缺少如何处理。我也找到了一个有用的链接来处理这个问题:h4ckish.com/2015/01/22/renaming-your-cocoapods-ios-project【参考方案2】:

我发布此内容是因为我在重命名 XCode 中的项目时一直在苦苦挣扎。

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

参考链接:Rename Project.Rename Source Folder and other files.

1- 备份您的项目。

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

2- 打开您的项目。

3- 在项目名称(蓝色顶部图标)上缓慢双击或按 Enter 键,然后将其重命名为您喜欢的任何名称。

注意: 重命名项目并按“回车”后,它会建议自动更改所有与项目名称相关的条目和 将允许您根据需要取消选择其中一些。选择所有 然后点击确定。

4- 重命名方案

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

b) 在旧名称方案上单击或按 Enter 键,然后将其重命名为您喜欢的任何名称。

c) 点击确定。

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

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

6- 关闭项目。

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

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

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

10- 保存文件。

11- 打开 XCode 项目,进行测试。

12- 完成。

编辑 2019 年 10 月 11 日:

在 Xcode 中有一个重命名项目的工具我还没有尝试过足够的评论。 https://github.com/appculture/xcode-project-renamer

【讨论】:

问题是复制然后重命名复制的项目。此答案仅用于重命名现有项目。 这对我来说是最简单的方法。只需复制原始项目文件夹,例如MyProject,递归到“MyNewProject”。然后打开 MyNewProject 并按照 fs_tigre 的说明进行操作。我很惊讶 android Studio 和 Xcode 都没有提供如此方便的“文件->克隆项目”选项。也许对某人 (nshipster.com/xcode-plugins) 来说是一个不错的插件项目? 唯一对我有用的方法 - XCode 8.2 步骤 10.1 - 如果您有桥接头和/或权利文件,请重命名这些文件以反映您的新名称。如果使用 Cocoapods,请在 pod 文件中编辑名称。【参考方案3】:

从 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

【讨论】:

这仅适用于重命名应用程序的内部,但外部应用程序的文件夹保持不变 xCode 11 链接:help.apple.com/xcode/mac/11.4/#/dev3db3afe4f【参考方案4】:

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

http://github.com/ytbryan/rename

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

【参考方案6】:

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

注意事项:

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

【讨论】:

公元 2021 年。大苏尔 11.6。 Xcode 13.0 beta 5。像魅力一样工作。【参考方案7】:

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

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

这里完成了,但是窗口 Xcode 和 *.xcodeproj or *.xcworkspace 的名称仍然是 &lt;old-name&gt;。然后我做:

pop install 打开&lt;new name&gt;.xcworkspace

【讨论】:

【参考方案8】:

还有一件事要尝试!

当我复制所有文件、打开项目并重命名它时,一切都更改为我的新项目名称 除了 用于测试目标!我收到一个链接器错误,提示我缺少一个名为“myOldProjectname.app”的文件。这是修复它的原因:

    单击您的项目设置并选择您的测试目标

    点击构建设置并搜索“测试主机”

    检查这两个文件路径。这两条路径可能仍然指向您的旧项​​目名称。

希望有帮助!

【讨论】:

【参考方案9】:

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

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

【讨论】:

以上是关于复制并重命名 Xcode 项目和相关文件夹 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

从可变源和目标位置复制文件并重命名重复项

在应用商店更新应用并重命名应用名称

python复制文件并重命名

python复制文件并重命名

iphone 项目 - 在 xcode 4.3 中复制和重命名

Linux复制文件到某路径并重命名