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

gry*_*zek 4 android firebase crashlytics android-productflavors

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

目前该应用程序在一个项目中,并且只有一个用于调试和发布的 crashlytics。我无法使用与前一个应用程序相同的包创建另一个应用程序。另一种选择是让另一个项目与第一个项目具有相同的包,但由于 api 密钥和其他功能,我需要一个项目。

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

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

有没有人有一些提示可以帮助解决这个案例?

Ale*_*lex 8

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

简而言之:

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

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


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

1. 在Firebase 控制台中

一种。转到项目设置。

湾 添加具有以下配置的其他Android 应用程序:

  • 应用标识符: <app_identifier>.debug
  • Name: // (Anything), 一定要Debug在最后用类似的东西标记它

C。注册这个应用程序

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

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

F。为这两个应用启用Crashlytics

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

2.安卓源码

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

湾 打开app/build.gradle文件。

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

C。结果,它应该是这样的:

android {
    // ...

    buildTypes {
        debug {
            applicationIdSuffix '.debug'
        }
        release {
            // ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

3. 完成!

发生崩溃,它将导致Firebase Crashlytics中的相应应用程序。页面左上角有两个项目的下拉菜单。

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

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