我正在尝试新的Firebase/Crashlytics设置,似乎遇到了一个奇怪的问题.
我有一个Android代码库,有多种产品口味,每种口味都是一个单独的应用程序.
所有这些应用都在Fabric中注册(过去)
所有这些应用都添加到Firebase中
两者之间的所有链接似乎都可以(从Fabric端以及Firebase端,它表示它全部链接起来)
我从清单文件中删除了Fabric API密钥,并将相应的插件/依赖项等添加到两个gradle文件中
我尝试按照Firebase说明发送测试崩溃报告.
我对其中一种产品口味非常好,所以我认为一切都很好.然而,
其余的产品风格不会发送崩溃报告,我在日志中收到此错误:
E/Fabric:无法从https://settings.crashlytics.com/spi/v2/platforms/android/apps/package名称/设置中检索设置
Kenneth Brow.. 35
好吧,我认为我解决了这个问题,但解决方案似乎不应该是它的工作方式(至少我不认为).
转到Firebase控制台>项目设置>帐户链接>结构>选择应用程序并取消链接
在Fabric> App> Firebase中进行Confim - 它已取消链接
转到Firebase>项目> Crashlytics(选择您想要的应用程序),您现在应该再次关联应用程序的对话框
选择链接为新的Crashlytics(不是现有的)并按照说明进行操作
之后一切都应该正常
所以基本上,从Fabric> Firebase屏幕 - 没有可见的链接,从Firebase>帐户链接> Fabric屏幕 - 也没有可见的链接.所以没有链接,但您的崩溃将在Firebase中可见.
好吧,我认为我解决了这个问题,但解决方案似乎不应该是它的工作方式(至少我不认为).
转到Firebase控制台>项目设置>帐户链接>结构>选择应用程序并取消链接
在Fabric> App> Firebase中进行Confim - 它已取消链接
转到Firebase>项目> Crashlytics(选择您想要的应用程序),您现在应该再次关联应用程序的对话框
选择链接为新的Crashlytics(不是现有的)并按照说明进行操作
之后一切都应该正常
所以基本上,从Fabric> Firebase屏幕 - 没有可见的链接,从Firebase>帐户链接> Fabric屏幕 - 也没有可见的链接.所以没有链接,但您的崩溃将在Firebase中可见.
这比我弄清楚如何正确迁移花了我很多时间.实际上你有两种方法可以做到:
执行干净迁移,无需保留Fabric Crashlytics的崩溃历史记录
Firebase Crashlytics开发人员指南中介绍了这种方式.您必须从此处删除com.crashlytics.ApiKey
meta-data
应用清单文件.
通过这种方式,您不能将Fabric与Firebase链接,否则Firebase或Fabric控制台中不会显示崩溃.
使用Firebase链接Fabric并保留崩溃历史记录
这种方式可能没有记录.至关重要的是保持com.crashlytics.ApiKey
meta-data
你的清单.然后,您需要将Fabric Crashlytics与Firebase相关联.您还可以启用将事件(以前称为Answers)转发到Firebase Analytics.这两个操作都显示在Fabric控制台中,在侧边菜单中查找Firebase.
所有新的崩溃报告都显示在Fabric控制台和Firebase控制台中.此链接还会将所有Fabric崩溃报告历史记录复制到Firebase.
我觉得firebase-core
这里不需要神器,但是我添加了它.我也在使用Fabric Events,因此firebase-core
Firebase Analytics中出现了额外的应用程序使用事件.
转到项目的设置,然后为您的Android应用添加SHA-1键。之后,将google-service.json重新下载到您的源。这导致此错误消失
E/Fabric: Failed to retrieve settings from https://settings.crashlytics.com/spi/v2/platforms/android/apps/package name/settings
经过相当长的延迟后,您将在Firebase Console中看到崩溃。
顺便说一句,这对于使用一个Google帐户注册的应用程序无济于事,之后又转移到了另一个帐户。希望Firebase团队对此问题做出回应。