如何为调试和发布模式设置 Firebase Crashlytics

How to set up Firebase Crashlytics for Debug and Release mode

我想为调试和发布模式设置 crashlytics,但我在 firebase 文档中找不到合适的信息。

目前应用在一个项目中,只有一个crashlytics用于debug和release。我无法使用与前一个应用程序相同的包创建另一个应用程序。 另一种选择是让另一个项目与第一个项目具有相同的包,但由于 api 键和其他功能,我需要一个项目。

我有两个想法但没有解决方案:

  1. 一个项目 -> 两个应用程序(具有相同的包? -> 现在它不起作用) -> 两个 google-services.json 和 flavours。
  2. 一个项目 -> 一个应用程序 -> 两个用于调试和发布的 crashlytics 设置(怎么做?)

有没有人有一些技巧可以帮助解决这个问题?

两种选择都可以。然而,第一个会导致两个单独的 Firebase 项目,这不太容易管理。最好坚持使用一个 Firebase 项目和同一个应用程序。

简而言之:

包标识符应该不同,以区分一个项目中的调试和发布变体。我们可以通过使用构建类型来区分这一点。

接下来,可以将第二个标识符添加到Firebase项目中。 Crashlytics 将在应用程序中区分它们。


为此,我们可以执行以下操作。

1。在 Firebase 控制台

一个。转到项目设置。

b。使用以下配置添加 additional Android 应用程序:

  • 应用标识符:<app_identifier>.debug
  • 名称://(任何内容),确保在末尾用 Debug 之类的东西标记它

c。注册此应用程序

d。下载 google-services.json 文件,我们将在下一步中用到它。

e。转到左侧菜单中的 Crashlytics 选项卡

f。为两个应用启用 Crashlytics

  • 第二步按Next
  • 忽略第三步,构建代码即可启用

2。 Android 来源

一个。将google-services.json文件放在项目中(app文件夹下)->覆盖旧的

b。打开 app/build.gradle 文件。

  • android 块内,将显示 buildTypes
  • 对于debug构建类型,添加applicationIdSuffix '.debug'(如果文件中不存在调试类型则添加)
  • 这将导致调试构建类型在调试构建的实际包标识符之后有 .debug
  • 发布版本将不受此影响

c。结果,应该是这样的:

android {
    // ...

    buildTypes {
        debug {
            applicationIdSuffix '.debug'
        }
        release {
            // ...
        }
    }
}

3。完成!

发生崩溃,它会在 Firebase Crashlytics 中生成相应的应用程序。页面左上角有一个包含这两个项目的下拉菜单。

现在,Crashlytics 将在发送崩溃报告时自动使用正确的 Firebase 应用程序。这是可行的,因为 google-services.json 实际上包含两种构建类型的配置。 Crashlytics 将根据包标识符使用正确的标识符。

最后说明:不要忘记在 Crashlytics 选项卡中启用 Crashlytics Firebase 控制台(如步骤 1f 中所述)