Firebase Crashlytics 在没有 Fabric API 密钥的情况下无法工作
Posted
技术标签:
【中文标题】Firebase Crashlytics 在没有 Fabric API 密钥的情况下无法工作【英文标题】:Firebase Crashlytics not working without Fabric API key 【发布时间】:2019-01-01 00:00:21 【问题描述】:我有一个安装了 Fabric Crashytics 的安卓应用。我按照官方指南设置 Firebase Crashlytics 并将 Fabric 和 Firebase 帐户关联起来(AFAIK Firebase 最近收购了 Fabric)。
所以特别是我在manifest.xml
中删除了带有<meta-data/>
标签的Fabric
API 密钥。
然后我尝试进行测试崩溃,但它既没有出现在 Firebase 也没有出现在 Fabric 仪表板中,但是我在 logcat 中获得了成功日志:Crashlytics report upload complete: <ID>
。
当我嗅探网络时,我似乎收到了来自 Crashlytics 的 403 Unathorized
。但是,当我在 <meta-data/>
标记中添加 Fabric
API 密钥时,它可以工作,并且我看到了崩溃报告。
请帮我看看我的配置有什么问题,如果我使用的是新的 Firebase Crashlytics,为什么我需要使用旧的 Fabric API key
而文档没有说明这一点。
【问题讨论】:
这里是来自 Firebase 的 Mike。在设置时,您是选择此应用是 Crashlytics 的新应用还是现有的 Crashlytics 应用? @MikeBonnell 我选择它是一个现有的 Crashlytics 应用,然后几分钟后,来自 Fabric 的所有报告都在 Firebase 上可见 很好,如果它是一个已经使用 Fabric 中的 Crashlytics 的应用程序,那么您应该选择该选项。 @MikeBonnell 我最初是在设置 sdk 时这样做的,但是尽管在 firebase 控制台中显示了报告,但如果没有 Fabric API 密钥,它就无法工作 如果您选择它是一个现有的 Crashlytics 应用程序,那么我们希望出现 Fabric API 密钥。 【参考方案1】:对于那些在 ios 上使用 Fabric 的人,这就是我最终从支持中得到的。我想重新开始。
访问https://firebase.google.com/docs/crashlytics/get-started?authuser=1#ios。 相应地修改 Podfile 中的 pod(按照说明指定 Fabric 和 Crashlytics 的版本) 更新构建阶段运行脚本:“$PODS_ROOT/Fabric/run”,而不是指向其 Fabric API 密钥的当前脚本从 Info.plist 中删除 API 密钥 - 在 AppDelegate.swift 中,删除 import Fabric 和 import Crashlytics 以及任何 Fabric.with 语句,保留 import Firebase 并改用 FirebaseApp.configure()
李>转到 Firebase 控制台中的项目设置,单击“集成”选项卡,从 Firebase 取消链接相应的 Fabric 应用程序(如果不这样做,您将收到类似于以下内容的错误:“[Fabric] 下载失败设置错误域=FABNetworkError Code=-5")
转到 Crashlytics 选项卡,您应该会看到您必须再次加入 Firebase Crashlytics。 通过这些步骤选择“此应用未安装 Crashlytics”,当您到达最后一步时,构建并运行应用并等待几秒钟。然后将设置您的 Crashlytics 选项卡。一旦我这样做了,并且强制崩溃了,它终于出现了。
【讨论】:
从 plist 中移除 API 密钥是关键。感谢您发布答案。 搜索了几天后,从 Firebase 中取消链接 Fabric 终于解决了我的 ios 问题。谢谢【参考方案2】:如果您从现有 Fabric crashlytic 应用程序迁移到 Firebase crashlytic,则以下内容是强制性的
<meta-data
android:name="io.fabric.ApiKey"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxx"
/>
Fabric.with(new Crashlytics()));
但不确定这些 API 和 KEY 会发生什么,一旦 Fabric 宕机,比如 2019 年年中。
【讨论】:
没错,新文档说迁移时不应更改项目中的 Crashlytics/Fabric 设置。在此基础上添加 Firebase 服务是可以的。一旦新的 SDK 可用,我们似乎需要检查更新并进行实际的 Crashlytics 迁移。【参考方案3】:Firebase Crash Reporting
将被 Fabric Crashlytics
取代,而不是相反...目前似乎仍然存在对 firebase-crash
的一些依赖,这可能会在未来的版本中被删除。
https://firebase.google.com/docs/crashlytics/upgrade-from-crash-reporting
^ 尽管那里显示“Firebase Crashlytics”,但它可能仍然是“Fabric Crashlytics”。
【讨论】:
我猜结果肯定是相反的! @mahee96 那时候好像……好像。以上是关于Firebase Crashlytics 在没有 Fabric API 密钥的情况下无法工作的主要内容,如果未能解决你的问题,请参考以下文章
Crashlytics-Firebase 崩溃报告没有意义[重复]
如何在 iOS 上使用 Firebase 以编程方式获取 Crashlytics 版本
Firebase Crashlytics 在没有 Fabric API 密钥的情况下无法工作
有没有办法让 Firebase Crashlytics 在远程服务中工作?