Flutter应用发布至Play Store后Google登录失效问题排查
Flutter Firebase Google登录Play Store发布后ApiException: 10 解决方案
核心解决:正确配置SHA密钥
由于你使用了Google应用签名服务,必须同时配置两类密钥的SHA指纹到Firebase,缺一不可:
需要添加的密钥类型
- 应用签名密钥的SHA1/SHA256:Play Store用于签名最终发布APK的官方密钥,这是发布版失效的核心影响因素
- 上传密钥的SHA1/SHA256:你本地用来签名上传APK的
upload-keystore.jks密钥,本地调试/Release正常依赖该密钥
获取方式
1. 获取应用签名密钥指纹
- 登录Play Console,进入目标应用
- 左侧菜单选择「应用完整性」→「应用签名」
- 在「应用签名证书」区域,复制SHA1和SHA256的完整值
2. 获取上传密钥指纹
执行以下keytool命令(替换为你的密钥路径和别名):
keytool -list -v -keystore /your/path/upload-keystore.jks -alias your-key-alias
输入密钥库密码后,从输出中复制SHA1和SHA256值
配置步骤
- 打开Firebase控制台,进入项目设置→目标Android应用→「添加指纹」
- 将上述两类密钥的SHA1、SHA256全部添加进去
- 重新下载
google-service.json,替换到Flutter项目的android/app目录下 - 重新构建发布APK并上传至Play Store
其他排查思路
验证google-service.json正确性
- 检查文件中的
package_name是否与Play Console的应用包名完全一致 - 确保文件是从Firebase对应Android应用下载的,未混用其他应用的配置
- 检查文件中的
检查Google Cloud Console OAuth配置
- 登录Google Cloud Console(与Firebase关联的项目)
- 进入「API和服务」→「凭据」
- 找到安卓类型的OAuth 2.0客户端ID,确认其包名和SHA1与Play Store应用签名密钥的SHA1完全匹配
- 确保已启用Google+ API(部分旧版
google_sign_in插件依赖)
验证发布APK的签名指纹
- 从Play Console内部测试渠道下载已发布的APK
- 执行命令查看APK签名指纹:
keytool -printcert -jarfile /path/to/downloaded/app.apk - 对比输出的SHA值与Firebase中添加的应用签名密钥是否一致
更新插件版本
- 确保
pubspec.yaml中的google_sign_in和firebase_auth为最新稳定版,避免版本兼容问题
- 确保
检查测试账号权限
- 若使用内部测试渠道,确认测试账号已添加到Firebase项目的授权测试用户列表中
内容的提问来源于stack exchange,提问作者Diák Dezső
相关产品推荐
相关产品推荐

