由于 Firebase 初始化,App Delegate 崩溃

Posted

技术标签:

【中文标题】由于 Firebase 初始化,App Delegate 崩溃【英文标题】:App Delegate crashes because of Firebase initialization 【发布时间】:2016-10-06 06:27:48 【问题描述】:

我收到了导致 AppDelegate 崩溃的错误

由于未捕获的异常“com.google.greenhouse”而终止应用程序,原因:“错误域=com.google.greenhouse 代码=-102“无法正确配置子规范分析”UserInfo=NSLocalizedFailureReason=不得使用跟踪 ID nil 或空。, NSLocalizedDescription=无法正确配置子规范分析'

我已按照 here 的 Firebase 指南进行操作

可能是什么原因? 此外,我现在不打算使用谷歌分析。有什么办法吗?

编辑:

注意:我已删除此屏幕截图的 ID 和密钥

【问题讨论】:

您的 googleinfo plist 可能不在正确的位置或为零 GoogleInfo.plist 应该放在哪里? @Shubhank 它在您的项目中的什么位置。发布其位置的屏幕截图。它应该是 .xcode 项目所在的位置 它与 Info.Plist @Shubhank 一起在支持文件中 @DarthVader 你有解决这个问题的方法吗?我面临同样的问题。如果您有任何解决方案,请帮助我。 【参考方案1】:

确保 GoogleService-Info.plist 文件位于正确的位置,即项目根目录。

我已经添加了我的项目的屏幕截图供您查看参考。

【讨论】:

能否通过更新问题来显示你的plist位置和plist内容 看看@Shubhank 从错误来看,它似乎是为您的应用启用分析的崩溃原因。您可以尝试在 plist 中将其设置为 NO - 清理应用程序并重新运行以检查它是否有效 IS_ANALYTICS_ENABLED 在我的应用程序中设置为 NO。 好的,你还能检查一下 plist 是否真的添加到了当前目标中吗?它可能只是不在复制资源部分中,并且在编译期间未捆绑到应用程序中。【参考方案2】:

如果它不是您的 googleservice-info.plist 文件的位置。在 google plist 中检查您的 IS_ANALYTICS_ENABLED。也许尝试将其更改为与当前相反的内容。 此外,您可以添加此启动选项以获取更多调试信息。也许会有所帮助。 产品 -> 方案 -> 编辑方案 -> 启动时传递的参数:

-FIRAnalyticsDebugEnabled 

【讨论】:

【参考方案3】:

我们遇到了完全相同的错误并通过删除解决了

pod 'Google/Analytics'

来自 Podfile。

在我们的案例中,我们一直在使用 GA 并切换到 Firebase + TagManager 解决方案,但只是忘记从 Podfile 中删除“Google/Analytics”。 (即使我们删除了“Google/Analytics”,TagManager 也会为依赖项安装 GoogleAnalytics,但错误消失了。很好奇,但它可以工作......)

【讨论】:

【参考方案4】:

我就这个问题询问了 Firebase 团队,他们已经回复了。

您可以检查问题是否仍然存在。 检查 GoogleService-Info.plist 文件是否位于正确的位置,即项目根目录。 在 google plist 中检查您的 IS_ANALYTICS_ENABLED。尝试改变它。 尝试删除 pod 'Google/Analytics'。 添加 -FIRAnalyticsDebugEnabled 以获取更多调试信息。

我的问题已通过删除 Google/Analytics pod 得到解决。

【讨论】:

我的问题已通过删除 Google/Analytics pod 得到解决。 (Y)【参考方案5】:

公认的解决方案是删除 Google Analytics。 但实际上你可以同时拥有 Firebase 和 Google Analytics。 我找到的解决方案是将 TRACKING_ID 添加到 GoogleService-Info.plist

例如,添加这个:

<dict>
    <key>TRACKING_ID</key>
    <string>UA-XXXXXX-X</string>

希望它对某人有所帮助!

【讨论】:

谢谢!解决了我的问题,现在我可以同时拥有 GA 和 Firebase! 太棒了!!你不知道它如何拯救我的一天。 从哪里可以得到追踪ID的价值? 我很高兴这有帮助。 @jayantrawat 你应该从谷歌分析中得到这个 我认为 GA 已停止允许在 GA 中使用移动应用跟踪。今天我尝试并无法获得跟踪 ID。唯一的选择是使用 Firebase。【参考方案6】:

在我的案例中启用/禁用您想要的服务我只需要分析,因此我在 IS_ANALYTICS_ENABLED 中设置为“是”,而其他服务设置为“否”。

Source

【讨论】:

【参考方案7】:

从 Podfile 中删除 --> pod 'Google/Analytics'

【讨论】:

【参考方案8】:

这里建议的解决方案都不适合我。唯一要做的就是禁用 Firebase 分析,方法是将“FIREBASE_ANALYTICS_COLLECTION_ENABLED”(布尔值)添加到 GoogleService-Info.plist 并将其设置为“NO”(取自:https://firebase.google.com/support/guides/disable-analytics)

【讨论】:

【参考方案9】:

如果希望同时拥有 Google Analytics(分析)和 Firebase。请在 GoogleService-Info 文件中添加两行代码。希望对你有帮助

 <key>TRACKING_ID</key>
<string>UA-123456789-0</string>

【讨论】:

以上是关于由于 Firebase 初始化,App Delegate 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

由于 Firebase 手机身份验证,App Store 被拒绝

在 Firebase 中,使用 FlutterFire,如何在 iOS 上初始化辅助应用程序?带有选项的 InitializeApp 给出 GOOGLE_APP_ID 错误

将 Flutter App 的 iOS 部分连接到 Firebase 的困惑

初始化firebase模拟器存储

带有Firebase的Google App Engine-无法添加依赖项

Flutter Web App 无法访问 Firebase Cloud Firestore