如何完全重命名Xcode项目(即包含文件夹)?

Vat*_*not 409 ide xcode rename batch-rename

我有一个名为的项目XXX.我想将此项目重命名为YYY.

请注意,这XXX是一个非常常见的术语(例如"数据"或简称"项目"),因此无法进行简单的RegEx搜索和替换,从而无法破坏项目配置文件.

我当前的项目目录包含以下项目:

  • XXX
  • XXXTests
  • XXX.xcodeproj

我想将它们重命名为:

  • YYY
  • YYYTests
  • YYY.xcodeproj

...分别在我的项目文件中反映了必要的更改.

如何在不必手动创建和填充新项目的情况下完成此操作?


编辑:这完全是荒谬的,这已成为我最热烈的问题:p

小智 897

第1步 - 重命名项目

  1. 在Xcode视图左侧的"项目导航器"中单击要重命名的项目.
  2. 在右侧选择"文件检查器",项目名称应位于"身份和类型"下,将其更改为新名称.
  3. 点击下拉菜单中的"重命名"

第2步 - 重命名方案

  1. 在顶部栏("停止"按钮附近),有一个OLD产品的方案,点击它,然后转到"管理方案"
  2. 单击方案中的OLD名称,它将变为可编辑,更改名称

第3步 - 使用您的资产重命名文件夹

  1. 退出Xcode
  2. 在正确命名的主文件夹中,有一个新命名的xcodeproj文件,其中包含错误命名的OLD文件夹.将OLD文件夹重命名为新名称
  3. 重新打开项目,您将看到一个警告:"文件夹OLD不存在",关闭警告
  4. 在左侧的"项目导航器"中,单击顶级OLD文件夹名称
  5. 在"身份和类型"下的"工具"窗格中,您将看到"名称"条目,将其从OLD更改为新名称
  6. 在下面有一个"位置"条目.单击具有OLD名称的文件夹,然后选择新重命名的文件夹

第4步 - 重命名构建plist数据**

  1. 单击左侧"项目导航器"中的项目,在主面板中选择"构建设置"
  2. 在本节中搜索"plist"
  3. 在包装下,你会看到git mv oldame newname,和Info.plist
  4. 重命名顶部条目 Product bundle identifier
  5. 做同样的事情 Info.plist

最后,你完成了并且可以重建(Command + Shift + K来清理,Command + B来构建)

  • 在执行第3步第2部分(重命名文件夹)时,如果你正在使用git,我建议使用`git mv oldname newname`,这样git会识别它是一个移动,而不是删除和添加你的所有文件. (51认同)
  • 完美,在Xcode 8.2中完美运行,在编辑方案时只需注意一点**如果单击方案名称一次不能使其可编辑**然后选择方案并点击返回键这将使方案名称编辑. (12认同)
  • 您可以更改项目名称,但文件夹名称仍然相同.你知道如何改变这些吗? (5认同)
  • 不要忘记[查找和替换](http://stackoverflow.com/questions/19116435/xcode-find-and-replace-in-all-project-files)旧项目名称的其他实例. (5认同)
  • 谢谢!对于Xcode 8,应该手动重命名权利文件. (4认同)
  • 一般工作。还需要将构建设置>测试>测试主机路径从.... / OLD.app/OLD更改为.... / NEW.app/NEW (2认同)
  • 像魅力一样工作!此外,如果您有单元测试和 UI 测试目标,请为这些重复步骤 3 和 4。 (2认同)
  • 完善!使用CoreData,您还可以重命名xcdatamodeld并在AppDelegate中更改NSPersistentContainer的名称 (2认同)
  • 仅重命名项目就需要花很多时间。它不应该那么复杂。 (2认同)
  • @AaronAsh 的评论非常有用,尽管我在步骤 3.2 的 *addition* 中犯了一个错误,即执行 `git mv oldname newname`。我认为应该*而不是*步骤 3.2。(该命令负责重命名。) (2认同)
  • 杰出的!正如 @Vaiden 所写,如果您有桥接标头,则必须将这些标头的目录更新为新标头。您必须更改“构建设置”下的“Objective-c Bridging Header”设置 (2认同)
  • 如果您正在使用 pod,请参阅 @Vaiden 答案,不要打开 XXX.xcworkspace 来更改名称!打开 XXX.xcodeproj 文件。 (2认同)
  • 在Xcode 9中,您可以从Xcode本身执行步骤3(重命名文件夹),因为它现在将组与实际文件夹链接 (2认同)
  • 步骤 3.6 对我来说是自动发生的。 (2认同)
  • 在步骤 4.2(“搜索 plist”)中,我必须确保在主窗口左侧(项目导航器右侧)的窗格中选择了我的“目标”(即,不是我的“项目”)之前搜索 plist。 (2认同)
  • 在 XCode 10.2.1 中,我必须在“Build Settings”中的“CODE_SIGN_ENTITLMENTS”键下将“OLD.entitlements”更新为新名称 (2认同)

Vai*_*den 179

添加到@ luke-west的优秀答案:

使用CocoaPods时

在第2步之后:

  1. 退出XCode.
  2. 在主文件夹中,重命名OLD.xcworkspaceNEW.xcworkspace.

在第4步之后:

  1. 在XCode中:Podfile从项目导航器中选择和编辑.您应该看到一个target带有OLD名称的子句.将其更改为新.
  2. 退出XCode.
  3. 在项目文件夹中,删除该OLD.podspec文件.
  4. rm -rf Pods/
  5. pod install.
  6. 打开XCode.
  7. 在项目导航器中单击您的项目名称.
  8. 在主窗格中,切换到Build Phases选项卡.
  9. Link Binary With Libraries,查找libPods-OLD.a并删除它.
  10. 如果你有一个objective-c Bridging标题,请转到Build settings并将标题的位置从OLD/OLD-Bridging-Header.h更改为NEW/NEW-Bridging-Header.h
  11. 清洁并运行.

  • 使用Xcode 8.3.2我不得不使用cocoapods-deintegrate并重新安装所有pod以使用新名称运行项目. (7认同)
  • 有人能告诉我在哪里可以找到这个答案中提到的OLD.podspec文件吗?在我的项目中,我得到了一些文件,如'Podfile'/'Podfile.lock'/'Pods.xcodeproj',我有一个名为'Local Podspecs'的空文件夹,但我找不到.podspec文件 (4认同)
  • 当您分发/计划将项目作为 Cocoapod 分发时,您只需要一个 podspec 文件。如果你这样做了,你可能会知道,所以我想你没有 podspec,@codeDude (4认同)
  • @SteffenK该方法与rm -rf Pods /之间有区别吗?考虑到您已完成所有其他步骤? (2认同)
  • @Vaiden非常感谢你在使用CocoaPods时的清晰度!这个过程确实创建了第二个引用,这很奇怪,但删除它之后一切都很完美!再次感谢!:) (2认同)

Kir*_*nee 51

Xcode 11.0+。

现在真的很简单。只需转到Xcode 窗口的左侧面板Project Navigator 即可。按下Enter以激活重命名,就像更改文件夹名称一样。

在此处输入图片说明

只需在此处更改新名称,Xcode 就会要求您重命名其他内容。

在此处输入图片说明.

点击这里的重命名,你就完成了。

如果你对你的根文件夹名称感到困惑,比如为什么它没有改变,那么它只是一个文件夹。它只是用一个新名称重命名了它。

在此处输入图片说明

  • 这个“简单”的解决方案对我来说惨败了。它将文件移动到错误的位置,删除了其他文件,未能更改许多设置。我必须亲自介入并解决所有问题。不建议。 (3认同)
  • 完成上述步骤后,您 **必须** 更改 **Info.plist** 的地址:左窗格中的项目导航器 > 选择项目 > 构建设置 > 打包 > Info.plist 文件 > 重命名为新项目名称/Info.plist (2认同)

Pie*_*sso 40

使用shell命令的更快解决方案(也适用于CocoaPods):

cd继续前往非GIT存储处⚠️

第1步 - 先决条件

  1. 将原始项目文件夹复制到/NewProjectFolder git存储库的临时OUTSIDE.⚠️更改为.git可能会损坏您的git索引

第2步 - 打开终端

现在我们要将项目重命名oldNameNewProject.

  • 关闭XCode.
  • 去你的/NewProjectFolder.
cd /Path/to/your/NewProjectFolder
Run Code Online (Sandbox Code Playgroud)
  • 安装所需的额外工具.
brew install rename ack
Run Code Online (Sandbox Code Playgroud)
  • 重命名包含源字符串的文件和目录.你需要运行这个命令,因为目录将首先重命名,然后在下一次迭代中重命名目录中的文件和目录.
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
Run Code Online (Sandbox Code Playgroud)
  • 检查是否重命名了包含源字符串的所有文件.你应该看到空输出.
find . -name 'oldName*'
Run Code Online (Sandbox Code Playgroud)
  • 替换所有文件中出现的所有字符串.
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
Run Code Online (Sandbox Code Playgroud)
  • 检查是否已替换所有文件中出现的所有字符串.你应该看到空输出.
ack --literal 'oldName'
Run Code Online (Sandbox Code Playgroud)
  • pod install
  • 添加NewProjectFolder到您的存储库.
  • 你完成了!

  • 谢谢,我发现它很有用。当像这样复制和粘贴命令时,如果可以减少工作量,则我更喜欢这样做,因此“ YourNewAmazingProjectName”的示例名称会显得过大,请使用“ example”,因为这样可以延长删除键的寿命。 (3认同)
  • @LpLrich 感谢您的建议,我刚刚更新了我的答案。 (2认同)
  • @EthanParker你需要运行`find.-name'oldName*' - print0 | xargs -0 rename --subst-all'oldName''ExampleName'`两次,主文件夹内的文件和目录将在第二次迭代时重命名. (2认同)

Olc*_*taş 18

有一个名为GitHub的项目Xcode Project Renamer:

它应该从Xcode项目目录的根目录执行,并使用两个字符串参数调用:$ OLD_PROJECT_NAME&$ NEW_PROJECT_NAME

脚本以递归方式遍历所有文件和目录,包括Xcode项目或工作区文件,并用$ NEW_PROJECT_NAME字符串替换所有出现的$ OLD_PROJECT_NAME字符串(每个文件的名称和内容都有).

Xcode Project Renamer

  • @ peter-walter,应始终在执行此类操作之前备份数据。 (3认同)

its*_*cgh 9

遵循@Luke-West + @Vaiden 的解决方案时的额外说明:

  • 如果您的方案在停止按钮旁边的左上角没有改变(仍然显示我的 mac):
  1. 单击新创建的项目名称(在停止按钮旁边)> 单击编辑方案> 构建(左侧)> 删除旧目标(会说它丢失)并替换为新命名的项目在新命名的项目徽标下

另外,我不必使用@Vaiden 解决方案的第 3 步。只是rm -rf Pods/在终端中运行摆脱了所有旧的 pod 文件

我也不必在@Vaiden 的解决方案中使用第 9 步,而是我只是删除了 Link Binary Libraries 下名为 framework 的 OLD 项目(新命名的框架已经存在)

所以更新的步骤如下:

步骤 1 - 重命名项目

  1. 如果您在项目中使用 cocoapods,请关闭工作区,然后打开 XCode 项目进行这些步骤。
  2. 在 Xcode 视图左侧的“项目导航器”中单击要重命名的项目。
  3. 在右侧选择“文件检查器”,您的项目名称应该在“身份和类型”下,将其更改为新名称。
  4. 在下拉菜单中单击“重命名”

第 2 步 - 重命名方案

  1. 在顶部栏中(“停止”按钮附近),有一个适用于您的旧产品的方案,单击它,然后转到“管理方案”
  2. 点击方案中的OLD名称,它会变成可编辑的,更改名称
  3. 退出 XCode。
  4. 在主文件夹中,将 OLD.xcworkspace 重命名为 NEW.xcworkspace。

第 3 步 - 使用您的资产重命名文件夹

  1. 退出 Xcode
  2. 在正确命名的主文件夹中,有一个新命名的 xcodeproj 文件,其中包含错误命名的 OLD 文件夹。将 OLD 文件夹重命名为您的新名称
  3. 重新打开项目,会看到警告:“文件夹OLD不存在”,解除警告
  4. 在左侧的“项目导航器”中,单击顶级 OLD 文件夹名称
  5. 在“身份和类型”下的实用程序窗格中,您将看到“名称”条目,将其从旧名称更改为新名称
  6. 正下方有一个“位置”条目。单击具有 OLD 名称的文件夹并选择新重命名的文件夹

第 4 步 - 重命名 Build plist 数据

  1. 点击左侧“项目导航器”中的项目,在主面板中选择“构建设置”
  2. 在本节搜索“plist”在打包下,你会看到Info.plist,和产品包标识符
  3. 重命名 Info.plist 中的顶部条目
  4. 对产品标识符执行相同操作

步骤 5 处理 Podfile

  1. 在 XCode 中:从项目导航器中选择并编辑 Podfile。您应该会看到一个带有 OLD 名称的目标子句。将其更改为 NEW。
  2. 退出 XCode。
  3. 在终端中,cd 进入项目目录,然后: pod deintegrate
  4. 运行 pod 安装。
  5. 打开 XCode。
  6. 在项目导航器中单击您的项目名称。
  7. 在主窗格中,切换到 Build Phases 选项卡。在 Link Binary With Libraries 下,查找 OLD 框架并将其删除(应该说它丢失了) NEWLY 命名的框架应该已经存在,如果没有,请使用窗口底部的“+”按钮添加它
  8. 如果您有一个objective-c Bridging 头文件,请转到构建设置并将头文件的位置从 OLD/OLD-Bridging-Header.h 更改为 NEW/NEW-Bridging-Header.h
  9. 清洁并运行。

成功执行所有步骤后,您应该能够在没有错误的情况下进行构建

  • 对于 Step 5.3 而不是 `rm-rf Pods/` 一个更简洁的方法是运行 `pod deintegrate`,它会从你的 Xcode 项目中删除 CocoaPods 的所有痕迹,但保持你的 Podfile 完好无损。 (5认同)

Paa*_*une 7

要更改项目名称;

  1. 在项目导航器中选择您的项目.

2.在"文件"检查器的"标识和类型"部分中,在"名称"字段中输入新名称.

3.按回车.

将显示一个对话框,列出项目中可以重命名的项目.该对话框包括预览更改后项目的显示方式.

  1. 要有选择地重命名项目,请禁用您不想重命名的任何项目的复选框.要仅重命名您的应用,请保留所选的应用并取消选中所有其他项.

  2. 按"重命名"


归档时间:

查看次数:

125521 次

最近记录:

6 年 前