Flutter安卓应用上架Google Play后Google登录失效问题求助
修复Flutter Android端Firebase Google登录失效(换签名密钥后测试包异常)
核心问题
接手已上架多年的Flutter应用,Android端Firebase Google登录突然失效,无法联系前开发者。更换Google Play的App Signing和Upload密钥并配置到Firebase后,本地执行flutter run --release登录正常,但flutter build appbundle打包的测试包(上传内部测试后下载)登录失效。
已完成排查
- 尝试添加Google Play发布密钥到Firebase时,提示同包名同密钥的应用已存在,但无该Firebase项目权限
- 在Google Play控制台更换App Signing密钥证书(每年限1次),并将其SHA-1添加到Firebase
- 申请更新Upload密钥证书,同时将其SHA-1配置到Firebase
- 修改代码中的.jks密钥及属性,本地
flutter run --release可正常登录 - 上传新密钥的应用到内部测试,下载后登录失效
- 重新核查密钥,执行
flutter clean清理缓存,本地release仍正常,但appbundle打包的测试包依旧失效 - 尝试恢复手机出厂设置,无效
后续排查方向
确认Firebase配置的SHA完整性
- 检查Firebase控制台是否同时配置了App Signing密钥的SHA-1/SHA-256和Upload密钥的SHA-1/SHA-256
- 用命令重新提取密钥SHA值:
- Upload密钥:
keytool -list -v -keystore your-upload-key.jks -alias your-alias - App Signing密钥:直接从Google Play控制台「应用签名」页面复制
- Upload密钥:
- 添加所有需要的SHA值后,重新下载
google-services.json替换到项目android/app目录
核查App Bundle打包的签名配置
- 检查
android/app/build.gradle中的签名配置,确认release构建使用新Upload密钥:signingConfigs { release { keyAlias 'your-alias' keyPassword 'your-key-password' storeFile file('your-upload-key.jks') storePassword 'your-store-password' } } buildTypes { release { signingConfig signingConfigs.release // 其他配置 } } - 确认
flutter build appbundle使用--release参数,且加载了正确的密钥属性文件(若用.properties管理密钥)
- 检查
验证测试包的实际签名
- 下载内部测试包后,用命令查看签名信息:
apksigner verify --print-certs your-downloaded-app.apk(aab需先转成apk) - 将输出的SHA值与Firebase中配置的App Signing密钥值对比——Google Play会用App Signing密钥重新签名aab,测试包的实际签名应与该密钥一致
- 下载内部测试包后,用命令查看签名信息:
检查Google Cloud OAuth客户端配置
- 进入绑定Firebase的Google Cloud Console,打开「API和服务」→「凭据」
- 确认存在对应包名和App Signing密钥SHA的OAuth 2.0客户端ID,若无则手动创建Android类型客户端ID,填入包名和App Signing密钥SHA
抓取登录错误日志
- 在测试设备开启调试模式,执行
adb logcat | grep -E "FirebaseAuth|GoogleSignIn"抓取登录时的错误日志 - 根据错误码(如
10为开发者配置错误、12500为操作失败)定位具体问题
- 在测试设备开启调试模式,执行
注意事项
- 更换App Signing密钥后,Google Play需1-2小时同步配置,同步完成后再重新上传测试包
- 替换
google-services.json后必须执行flutter clean并重新构建 - 区分Upload密钥和App Signing密钥:本地构建用Upload密钥签名,Google Play会用App Signing密钥重新签名,Firebase必须配置App Signing密钥的SHA值
- 若无法访问原Firebase项目,可向Google提交应用所有权证明,申请获取项目权限(流程较长但能彻底解决问题)
内容的提问来源于stack exchange,提问作者Эрика Эрика
相关产品推荐
相关产品推荐

