我有两种构建类型 - debug
和release
- 以及两种口味,dev
和prod
。
区别很简单:debug
是可调试的二进制文件,release
已优化,删除了调试代码,以及Proguard。
dev
用于连接到开发Firebase项目,prod
用于实际的生产数据库。
有些情况下我想在prod数据库中使用debug
,所以我有四种可能的组合。问题是Firebase中的项目设置需要二进制文件签名密钥的SHA1指纹,创建可调试应用程序将始终使用调试密钥。
我在两个Firebase项目上没有相同的密钥,因此在开发Firebase项目上使用调试签名密钥意味着我也无法在prod上使用它,因此我无法使用& #34; prodDebug" setup(即带有可调试二进制文件的prod数据库)。
解决此问题的正确方法是什么?
答案 0 :(得分:1)
在Fazan Cheng的评论中发表的Medium article中概述了设置中缺少的元素。
对于相同的应用程序ID ,Firebase不允许使用相同的SHA1密钥。这意味着我们可以通过修改每种风格的应用程序ID来解决这个问题。
具体来说,可以使用applicationIdSuffix
来完成,它会在应用程序ID中添加一个字符串。例如:
productFlavors {
dev {
applicationIdSuffix '.dev'
versionNameSuffix "-dev"
dimension 'env'
}
prod {
versionNameSuffix "-prod"
dimension 'env'
}
}
如果您的应用程序ID为com.foo.myapplication
,则dev风格的ID为com.foo.myapplication.dev
。您现在可以使用此新ID生成单独的Firebase项目,并重复使用相同的SHA1密钥。