Android 如何为调试和发布模式设置Firebase Crashlytics
我想为调试和发布模式设置crashlytics,但在firebase文档中找不到合适的信息 目前,该应用程序在一个项目中,只有一个crashlytics用于调试和发布。我无法使用与前一个相同的软件包创建另一个应用程序。 另一个选择是使用与第一个相同的包创建另一个项目,但由于api键和其他功能,我需要创建一个项目 我有两个想法,但没有解决方案:Android 如何为调试和发布模式设置Firebase Crashlytics,android,firebase,crashlytics,android-productflavors,Android,Firebase,Crashlytics,Android Productflavors,我想为调试和发布模式设置crashlytics,但在firebase文档中找不到合适的信息 目前,该应用程序在一个项目中,只有一个crashlytics用于调试和发布。我无法使用与前一个相同的软件包创建另一个应用程序。 另一个选择是使用与第一个相同的包创建另一个项目,但由于api键和其他功能,我需要创建一个项目 我有两个想法,但没有解决方案: 一个项目->两个应用程序(使用相同的软件包?->目前无法运行)->两个google-services.json和flavors 一个项目->一个应用->两
有没有人有一些可以帮助解决这个问题的建议 这两种选择都是可能的。然而,第一个项目将导致两个独立的Firebase项目,这是较少可管理的。最好只使用一个Firebase项目和同一个应用程序 简言之: 包标识符应该不同,以便在一个项目中对调试和发布变量进行区分。我们可以通过使用构建类型来区分这一点 接下来,可以将第二个标识符添加到Firebase项目中。Crashlytics将在应用程序中区分它们
为了实现这一目标,我们可以采取以下措施 1.在Firebase控制台中 a。转到项目设置 b。添加具有以下配置的附加Android应用程序:
- 应用程序标识符:
.debug
- 名称://(任何内容),请确保在结尾处使用类似于
的标记Debug
googleservices.json
文件,我们将在下一步需要它
e。转到左侧菜单中的Crashlytics选项卡
f。为这两个应用程序启用Crashlytics
- 在第二步按
Next
- 忽略第三步,构建代码将启用它
googleservices.json
文件放在项目中(在app
文件夹下)->覆盖旧文件
b。打开app/build.gradle
文件
- 在
块中,将显示android
buildTypes
- 对于
生成类型,添加debug
(如果文件中不存在调试类型,则添加该类型)applicationIdSuffix.debug'
- 这将导致调试生成类型在调试生成的实际包标识符之后具有
.debug
- 发布版本将不受此影响
android {
// ...
buildTypes {
debug {
applicationIdSuffix '.debug'
}
release {
// ...
}
}
}
3.完成!
发生崩溃,将导致Firebase Crashlytics中相应的应用程序崩溃。在页面的左上角有一个下拉列表,其中两个项目都位于该页面的左上角
现在,Crashlytics在发送崩溃报告时将自动使用正确的Firebase应用程序。这是可行的,因为googleservices.json
实际上包含这两种构建类型的配置。Crashlytics将根据包标识符使用正确的
最后注意:不要忘记在Firebase控制台的Crashlytics选项卡上启用Crashlytics(如步骤1f中所述)尝试使用不同的程序包名称创建不同的应用程序。调试。并在src/debug文件夹中使用调试应用程序google-services.json。你的应用程序的build.gradle将如下所示--debug{\n applicationIdSuffix.debug“\n debugable true}--我没有足够的时间尝试它。请尝试并告知:)@Slashbin它不起作用,因为我不能在一个android应用程序中有两个程序包名称。但公认的答案是相同的。有了这个额外的标识符,它似乎可以正常工作:)其他firebase产品,如推送通知,这一策略在那里也会起作用吗?是的,其他产品(如推送通知)也可以很好地使用此配置。由于Firebase项目具有相同的服务器密钥,推送对于这两种构建类型都可以正常工作