更改 Firebase 的捆绑包 ID

Posted

技术标签:

【中文标题】更改 Firebase 的捆绑包 ID【英文标题】:Changing bundle ID for Firebase 【发布时间】:2017-02-11 23:28:11 【问题描述】:

在这个项目的早期,我犯了在包标识符中没有前缀com 的错误。现在我已准备好试飞,但我的捆绑包标识符无效。

目前,我的包标识符是 mycompany.myProject,但我希望它是 com.mycompany.myproject。我可以毫无问题地切换到所需的捆绑 ID 以存档应用程序并上传到应用程序商店。

我将应用程序切换到适当的包标识符所采取的步骤:

    在 Firebase 控制台中使用正确的捆绑包 ID 创建新应用。 下载这个新应用程序的 Google-Info.plist 并放置在项目根目录中并拖到 Xcode 项目中。 在 Facebook 上更改捆绑包标识符 在项目设置中更改包标识符

但是,此错误导致应用程序严重崩溃。

*** Terminating app due to uncaught exception 'InvalidPathValidation', reason: '(child:) Must be a non-empty string and not contain '.' '#' '$' '[' or ']''

出现此错误的时间点是调用 Firebase 方法时

- (NSString *) getUid 
return [FIRAuth auth].currentUser.uid;

此方法返回 nil,它提供了一个从 Firebase 检索数据的方法。此方法的nil 返回导致InvalidPathValidation 错误。

我正在使用 Facebook 进行身份验证。我想这可能是返回nil 的原因是该应用程序不知道谁已登录,因为我从未被提示登录(我的应用程序检查您是否通过 Facebook 在打开的 ViewController 上的 viewWillAppear 登录) .然而,这没有任何意义,因为我所做的唯一更改是更改捆绑 ID。我已经被这个问题困住了将近一个星期。

我特别想知道我需要更改什么才能让 Firebase 接受捆绑标识符更改。

【问题讨论】:

您是否删除了旧的 GoogleService-Info.plist?只是想确保那里没有两个,而且它弄错了。 我用更新后的替换了旧的 GoogleService-Info.plist。我的根目录下只有一个文件。 【参考方案1】:

解决方案是在同一个 firebase 项目中创建一个新应用

【讨论】:

哇,真的没有办法在 Firebase 中更改 bundle ID 吗? 真的没有菲尔。您可以将不同的项目添加到同一个项目中,但由于某种原因,该项目不适用于该项目。但是,后来做另一个项目,我能够将多个应用程序添加到同一个项目中,没问题 就像@KyleGriffith 在他的评论中所说,我能够通过在同一个项目中创建一个新应用程序来解决这个问题。我必须替换 GoogleService 文件并更新崩溃报告的信息(创建并下载新的崩溃报告 JSON 文件并更新构建阶段以引用新文件和新的 GoogleService Id)。 只需选择 APN 方法并生成 .p8 文件即可。轻松多了。 是的,这真的很糟糕。仍然无法在不创建新应用的情况下更新捆绑 ID ?【参考方案2】:

上述答案在发布时可能是正确的,但帮助我的是更改目标的签名和功能设置中的包标识符。然后,我转到GoogleService-Info.plist 文件并更改了BUNDLE_ID 的值。然后,我点击Command +B 构建应用程序并运行应用程序。它对我来说工作得很好,我没有收到任何错误。

【讨论】:

这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review @827 我不是在批评或要求澄清。我只是提供一个答案,因为我发现接受的答案不值得创建一个新的 Firebase 项目只是为了更改一个 Bundle ID。请仔细阅读。 这在某些情况下可能有效,但在许多其他情况下还不够,例如使用 Firebase 身份验证时。它没有回答问题。 @NikolaySuvandzhiev 这适用于所有情况。事实上,当我尝试解决 OAuth 的一些问题时,我自己也使用了这种技术。它确实回答了这个问题。 当您执行建议的步骤时,是否在 Firebase 控制台的项目设置中设置了新的捆绑包 ID?对我来说不是。结果,带有“使用 Apple 登录”的 Firebase 身份验证不起作用。而且无论如何必须记住更改 GoogleService-Info.plist 并不是很好。正确的方法是在另一个答案提到的同一个项目中创建一个新应用程序。

以上是关于更改 Firebase 的捆绑包 ID的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iTunes 连接中更改捆绑标识符

如何获取 Firebase 的 iOS 捆绑包 ID?

iOS中的Firebase注册错误通过本机反应

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

Android Firebase 推送通知包数据问题 [关闭]

更改捆绑包标识符时,iOS 启动屏幕不显示图像