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

Posted

技术标签:

【中文标题】如何更改应用程序的捆绑 ID 和应用程序名称【英文标题】:How To Change The App's Bundle ID & App’s Name 【发布时间】:2016-08-16 14:42:26 【问题描述】:

我正在Swift 开发一个 ios 应用程序。我已经下载了我的Firebase Google Plist 文件,我目前正在我的应用程序中使用Firebase AuthFireDatabase 模块。我想将我的应用程序的名称和 bundleID 从其在 Firebase“Special Sauce”中的当前名称(带有 bundleID .com.specialsauce.Special Sauce)更改为新的 Firebase 名称,即带有 bundleID 的“Sauce” .com.pizza.Sauce

如何使用我当前的Firebase Google Plist 文件和最初安装的所有Firebase pod(我使用Cocoapods 安装Firebase)来实现这一点?

【问题讨论】:

【参考方案1】:

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

在您开始之前,请确保您在副本上执行此操作,并且您有原件的备份,因为如果出现任何问题,您将无所适从。您还需要确保在更改名称之前知道哪些 pod 最初包含在您的项目中,因为您将在第 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 Sauce 更改为 Sauce,这也会给我一个新的应用名称。

    我遵循了这些 youtube 指示,这些指示 100% 有效change app's name & last part of bundleID

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

如果我想将中间部分从 com.specialsauce.Sauce 更改为 com.pizza.Sauce 这第二步和第三步是如何更改中间部分:specialsauce to pizza

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

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

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

(不是 project.xcworkspace 文件)。

    在那里,我按“command + f”搜索任何具有旧名称(特殊酱)的东西并将它们更改为我的新名称(披萨)。我保存(command+s)并在所有内容更改后关闭文件。

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

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

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

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

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

    在进行上述更改之前,我必须删除所有仍与原始应用的名称/bundleID 相关联的 pod 文件。我打开终端,导航到我的项目所在的同一文件夹,然后我按照特定顺序按照这些步骤删除所有旧的 cocoapod 文件。我会将用于这些说明的链接放在下面。

    $ sudo gem install cocoapods-deintegrate

    $ sudo gem install cocoapods-deintegrate cocoapods-clean

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

    $ pod 解体

    $ pod clean

    $ rm Podfile

    $ pod 缓存清理 --all

运行完所有命令后,cocapods 就从我的系统中彻底清除了,但每次我尝试构建项目时,我都会收到这些奇怪的 3 个崩溃日志。事实证明我必须重新安装我删除的所有可可豆荚。

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

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

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

这里是我上面运行的命令的链接,用于从我的应用程序中擦除所有 cocoapod 文件。请记住,一旦它们消失,您仍然会遇到构建错误,因为您必须使用“pod init”和“pod install”再次重新安装 pod

cocoapods deintegrate

how to remove cocoa pods from a project

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

更新

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

关注this answer 进行修复或关注this answer\

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

【讨论】:

这很有帮助。昨天观看 Firebase 峰会 2019 后,我尝试添加一些新的 Firebase 内容,但一切都搞砸了。严重的豆荚问题,所以我试图恢复。最后,我找到了这个和......船的形状。谢谢,兰斯。 np,任何时候,我实际上是在几年前写的,幸运的是它仍然有效。那个 YouTube 视频是黄金,请也为他的视频点赞。很高兴有帮助!干杯??!! 该死的......这不应该这么难:(谢谢你写出来! @DanilKurilo 我同意这些步骤只是为了更改您的捆绑包名称。很高兴我能帮上忙。干杯!

以上是关于如何更改应用程序的捆绑 ID 和应用程序名称的主要内容,如果未能解决你的问题,请参考以下文章

更改应用名称和捆绑 ID 以将其上传到 iTunes 连接上的另一个应用中

Google App Invites:具有不同包名称/捆绑 ID 的 iOS 应用和 Android 应用 - 它们如何与 goo.gl/App Invites 关联?

iTunes Connect:如何在应用提交之前更改捆绑 ID?

是否更改 iOS 捆绑包显示名称,在用户设备上作为新应用下载?

如何更改应用名称并保留当前用户?

更改应用程序名称后更改捆绑标识符