Flutter应用SHA-1/SHA-256指纹配置及Google登录报错排查
解决Flutter Google登录ApiException: 10错误
一、SHA指纹的正确配置方式
ApiException:10的核心原因是SHA指纹未配置完整,你提到的两组密钥指纹都需要添加到Firebase项目:
- Upload Key Certificate:这是你本地用于打包上传到Google Play的密钥指纹,不管是测试包还是准备上传的包,只要用这个密钥签名,就必须添加。
- App signing key certificate:这是Google Play托管的应用签名密钥,线上发布的应用会用这个密钥重新签名,所以必须添加,否则用户下载的正式版会登录失败。
操作步骤:
- 进入Firebase控制台的项目设置
- 在「你的应用」板块找到对应Android应用,点击「添加指纹」
- 分别将两组密钥的SHA-1和SHA-256指纹全部添加进去(每组密钥两个指纹都要填)
二、google-services.json文件问题排查
你提供的json文件存在明显问题:oauth_client数组为空,正常配置Google登录后,这里应该包含对应SHA指纹的OAuth客户端信息。
正确的oauth_client结构示例:
"oauth_client": [ { "client_id": "xxxxxx.apps.googleusercontent.com", "client_type": 1, "android_info": { "package_name": "com.kane.dealdiligence", "certificate_hash": "你的SHA-1指纹" } }, { "client_id": "xxxxxx.apps.googleusercontent.com", "client_type": 3 } ]
修复方法:
- 添加完所有SHA指纹后,从Firebase控制台重新下载最新的google-services.json
- 替换项目
android/app目录下的旧文件 - 执行
flutter clean清理缓存,再重新运行项目
三、额外注意事项
- 确认
android/app/build.gradle里的applicationId和google-services.json中的package_name完全一致(你的是com.kane.dealdiligence,必须严格匹配) - 开发阶段如果用Android Studio默认的调试密钥,也要把调试密钥的SHA-1和SHA-256添加到Firebase。获取调试指纹的命令:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
内容的提问来源于stack exchange,提问作者LostTexan
相关产品推荐
相关产品推荐

