Android Firebase Google登录需添加各设备SHA-1,问题排查求助
问题解决指南:Firebase Google登录团队协作SHA-1问题
核心原因
团队成员的Android模拟器使用的是本地Android Studio默认生成的debug密钥库,而非项目统一的签名密钥,导致每个人的debug包签名SHA-1不一致,必须单独添加到Firebase控制台才能登录。实体机无需添加的原因是:USB调试安装时,部分设备/Google Play服务会兼容非统一签名的调试包,但模拟器会严格校验签名匹配。
解决方案
1. 创建并共享项目统一的debug密钥库
- 生成专属项目的debug密钥库(不要用Android Studio默认的
~/.android/debug.keystore):keytool -genkey -v -keystore app/debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 - 将生成的
debug.keystore放到项目的app目录下,提交到版本控制(确保密钥密码安全共享给团队成员)。
2. 配置Gradle强制使用统一debug签名
在app/build.gradle中添加签名配置,让所有成员构建debug版本时自动使用统一密钥:
android { signingConfigs { debug { storeFile file('debug.keystore') storePassword 'android' // 替换为你设置的密钥库密码 keyAlias 'androiddebugkey' // 替换为你的密钥别名 keyPassword 'android' // 替换为你的密钥密码 } release { // 保留原有的release签名配置 } } buildTypes { debug { signingConfig signingConfigs.debug // 其他debug构建配置 } release { signingConfig signingConfigs.release // 其他release构建配置 } } }
- 提交修改后的
build.gradle到版本控制,确保所有成员同步配置。
3. 更新Firebase控制台并同步配置
- 提取统一debug密钥库的SHA-1/SHA-256:
keytool -list -v -keystore app/debug.keystore -alias androiddebugkey -storepass android -keypass android - 将提取到的SHA值添加到Firebase控制台的项目设置中,下载最新的
google-services.json替换项目中的文件,提交到版本控制。
验证
团队成员同步项目代码后,构建debug版本到模拟器,无需再添加个人设备的SHA-1即可正常完成Google登录。
内容的提问来源于stack exchange,提问作者Sangjoon Lee
相关产品推荐
相关产品推荐

