You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正确添加SHA密钥后Flutter注册功能仍失效,报错ApiException:10

报错排查与解决方案

ApiException: 10属于谷歌服务配置校验失败类错误,即使用户已主动添加过SHA密钥,也大概率存在配置环节遗漏,可按以下步骤逐一排查解决:

1 校验SHA密钥配置是否完全匹配

  • 确认你添加到谷歌云控制台/Firebase控制台的SHA值,和你当前打包运行所用的签名文件SHA完全一致:
    • 本地调试默认用的debug签名存放在用户目录下.android/debug.keystore,获取SHA的命令为:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • 如果你用了自定义签名配置,要先核对android/app/build.gradle里signingConfigs配置的签名文件路径,生成对应SHA后再和控制台配置做比对
  • 注意:如果是上架Play商店的安装包,需要额外添加Play Console应用签名模块生成的SHA值,谷歌会自动替换上架包的签名,该步骤为高频遗漏点

2 校验包名与客户端ID配置

  • 确认你在谷歌云控制台创建的OAuth 2.0客户端ID对应的包名,和Flutter项目android/app/build.gradle里的applicationId完全一致,大小写也要严格匹配
  • 如果使用了Firebase,要确认最新下载的google-services.json已经放到android/app目录下,且文件内的client_id对应的包名、SHA和你项目的实际配置完全一致,修改控制台配置后必须重新下载该文件

3 项目依赖配置校验

  • 检查android/app/build.gradle顶层是否已经添加谷歌服务插件配置:apply plugin: 'com.google.gms.google-services'
  • 检查项目根目录的build.gradle的dependencies中是否引入了谷歌服务依赖:classpath "com.google.gms:google-services:4.3.15"(版本可适配你的项目实际需求)
  • 确认代码调用谷歌登录时传入的是Android端的客户端ID,不要误传Web端、iOS端的客户端ID

4 缓存清理验证

所有配置修改完成后,按顺序执行以下操作再测试:

  • 执行flutter clean清理项目缓存
  • 卸载测试设备上已安装的同包名应用
  • 重新打包运行项目测试

90%以上的该类报错都是SHA配置不匹配导致,尤其是上架场景下漏加Play商店应用签名SHA的情况占比最高。

内容的提问来源于stack exchange,提问作者Abhilash Wise

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 10:45:10