如何更改应用程序的 Bundle ID 和应用程序名称

How To Change The App's Bundle ID & App’s Name

我正在 Swift 开发 iOS 应用程序。我已经下载了我的 Firebase Google Plist 文件,我目前正在我的应用程序中使用 Firebase AuthFireDatabase 模块。我想将我的应用程序的名称和 bundleID 从其在 Firebase "Special Sauce" 中的当前名称更改为 bundleID .com.specialsauce.Special Sauce 到新的 Firebase 名称 "Sauce" 的 bundleID 为 .com.pizza.Sauce.

如何使用我当前的 Firebase Google Plist 文件和所有 Firebase pods(我使用 Cocoapods 安装 Firebase) 是最初安装的吗?

我找不到在 Firebase 中更改应用程序名称的方法,因此我删除了 Firebase Google Plist 文件并使用我想要的首选名称启动了一个新应用程序。我还必须更改实际的 iOS 应用程序名称和 bundleID。

在开始之前,请确保您在副本上执行此操作,并且您有原件的备份,因为如果出现任何问题,您将被解决。您还需要确保在更改名称之前知道项目中最初包含了哪些 pods,因为您将在第 6 步中将它们全部删除并在第 8 步中将它们添加回来。

开始的目标是将我的应用程序的 bundleID 从 com.specialsauce.Special Sauce 更改为 com.pizza.Sauce 自动给我我想要的名字。第 1-4 步仅更改 Xcode 中的应用程序名称和 bundleID。如果您也想在 Firebase 中更改它们,请按照第 5 步继续...

如果我的应用程序的 bundleID 是 com.specialsauce.Special Sauce 并且我想将最后一部分(应用程序的实际名称)更改为 com.specialsauce.Sauce 第一步是如何更改最后一部分:Special SauceSauce 这也会给我一个新的应用程序名字.

  1. 我遵循了这些 100% 有效的 YouTube 说明 change app's name & last part of bundleID

现在我的应用程序的 bundleID 是 com.specialsauce.Sauce 并且应用程序在 Xcode 中的新名称是“Sauce”。

如果我想把中间部分从com.specialsauce.Sauce改成com.pizza.Sauce这第二步和第三步是如何改变中间部分:specialsaucepizza

  1. 我转到应用程序所在的主项目文件夹,打开它,右键单击蓝色 .xcodeproj 文件

(不是白色的 .xcworkspace cocoapod 文件),选择 Show Package Contents

然后双击打开白色的project.pbxpoj文件

(不是 project.xcworkspace 文件)。

  1. 进入后,我按 'command + f' 搜索任何具有旧名称(specialsauce)的东西,并将它们更改为我的新名称(pizza)。我保存 (command+s) 并在所有内容更改后关闭文件。

我应用的新 bundleID 现在是 com.pizza.Sauce

假设您的所有文件都在同一路径中(例如 mainFolder/XcodeProjectName/allYourFiles),您应该看不到任何红色项目文件。但是,由于名称更改,您的 Pod 文件将变为红色,您将不得不删除它们并重新安装,我在第 6 步中对此进行了说明。

  1. 如果您从 developers.apple.com 获得了 iOS 证书(即消息证书),您可能会在项目导航器中看到一些红色错误文件。如果您的项目中有 yourAppsName.entitlements 证书,那么由于名称更改,您将不得不删除它。转到您的项目导航器 > 单击最顶部的 Blue Icon > 在中央控制台的左侧确保您在 Targets(不是项目)> select Build Settings > 在搜索框中输入 code_signing,您会看到 Code Signing Entitlements 出现 > 转到它的右侧,单击 whateverName/yourAppName.entitlements然后删除它。在删除它之前,您可以按左侧的代码签名权利,您会看到一个向下箭头,按它会显示调试和发布,具有相同的 whateverName/yourAppName.entitlements 在他们的右边。删除第一个后,所有 3 个都应该消失。

  2. 为了在 Firebase 中更改我的应用程序名称和 bundleID,我打开了我的 Xcode 项目,找到了 Firebase Google Plist 文件并将其从项目中删除。我删除了它,因为它仍然有旧名称。第 7 步,您将另一个文件拖回。顺便说一句,无需构建,因为一旦删除该文件,您将无法再连接到 Firebase。

在开始第 6 步并从 Podfile 中删除 pods 之前,您需要将它们复制并粘贴到某处,因为您将不得不在生成后的第 8 步中再次添加它们一个新的 Podfile。此外,这非常重要,如果您使用的是 Xcode 8.3.3 中的旧 pod 文件,但您在 Xcode 9 中更改了 bundleID,则您将必须找到并安装当前的 Xcode 9 pods 与您的项目相关。我之所以这么说,是因为这最终让我很头疼,因为我试图将旧的 pods 从 Xcode 8.3.3 重新安装到 Xcode 9.1.

  1. 在进行上述更改之前,我不得不删除所有仍与原始应用程序 name/bundleID 绑定的 pod 文件。我打开终端,导航到我的项目所在的同一个文件夹,然后我按照这个特定的顺序执行这些步骤以删除所有旧的 cocoapod 文件。我将把我用于这些说明的 links 放在下面。

    $ sudo gem 安装 cocoapods-deintegrate

    $ sudo gem install cocoapods-deintegrate cocoapods-clean

    $rm -rf ~/Library/Developer/Xcode/DerivedData

    $ pod 分解

    $ 豆荚清洁

    $ rm Podfile

    $ pod 缓存清理 --all

一旦所有命令都是 运行,cocapods 就从我的系统中完全清除了,但每次我尝试构建项目时,我都会收到这些奇怪的 3 个崩溃日志。原来我不得不重新安装我删除的所有 cocoa pods.

  1. 在我这样做之前,我去了 Firebase 并使用新项目名称和新 bundleID 启动了一个新应用程序,下载了新的 .plist 文件,并将其拖回项目中。

  2. 然后我打开终端,导航到我的应用程序所在的文件夹,执行 'pod init',打开 Podfile 并粘贴我从步骤中删除的所有 pods 6、运行 'pod install' 然后一旦完成,我按下构建,一切都很好。

我在 Xcode 和 Firebase 中更改了 iOS 应用的名称和 bundleID!

这是我 运行 上面命令的 links,用于从我的应用程序中擦除所有 cocoapod 文件。请记住,一旦它们消失了,您仍然会遇到构建错误,因为您将不得不使用 'pod init' 和 'pod install'

重新安装 pods

cocoapods deintegrate

how to remove cocoa pods from a project

在第二个 link 中,我使用了 DevGangsta 的答案来删除 pod 文件。最高票数的第一个答案对我不起作用。

更新

在调试器中更改 bundleId 后,您可能会看到一些数据模型的奇怪名称,例如 yourAppName.-temp-caseinsensitive-rename。您正在专门寻找这个确切的短语 -temp-caseinsensitive-rename

关注this answer to fix it or this answer\

确保在此更新步骤后执行 clean build (shift + cmmd + k)。由于某种原因,资产文件夹会定期丢失,但是一旦我进行了干净的构建,一切正常