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

Flutter实现Google登录抛出ApiException 10错误如何解决

你遇到的ApiException: 10错误属于Google身份校验的配置类错误,核心原因是服务端校验你的应用签名、包名、OAuth凭证信息不匹配,按以下步骤逐一排查即可:

1 检查Google Cloud控制台OAuth凭证配置

  • 确认你创建的是Android类型的OAuth 2.0客户端ID,不可使用Web、iOS等其他类型的客户端ID
  • 确认凭证填写的包名和Flutter项目android/app/build.gradle文件中的applicationId完全一致,大小写也不能有出入
  • 确认凭证填写的SHA-1签名指纹和你当前运行APP使用的签名对应,分两种场景获取正确的SHA1:
    • 调试阶段:使用本地debug签名的SHA1,执行命令获取:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • 正式打包阶段:使用你的正式签名文件对应的SHA1,执行命令获取:keytool -list -v -keystore 你的正式签名文件路径 -alias 你的签名别名
  • 若你的应用已上架Google Play,需要额外将Google Play控制台「应用签名」页面给出的SHA1也添加到OAuth凭证中,Google Play会自动重签名上架应用,原签名的SHA1会失效

2 检查Flutter项目本地配置

  • 高版本google_sign_in库Android端无需在代码中手动传入clientId,可先删掉初始化代码中的clientId参数,Android端会自动读取配置文件的信息
  • 确认你已从Google Cloud控制台下载google-services.json文件,放到项目android/app目录下
  • 确认android/build.gradle中已添加Google服务依赖:
    dependencies {
        classpath 'com.google.gms:google-services:4.3.15' // 可替换为最新稳定版
    }
    
  • 确认android/app/build.gradle文件末尾已添加Google服务插件声明:
    apply plugin: 'com.google.gms.google-services'
    

3 其他常见问题排查

  • 确认OAuth同意屏幕已发布,若处于测试状态,必须将测试使用的Google账号添加到同意屏幕的测试用户列表中,否则会被拦截无法登录
  • 测试设备需安装最新版Google Play服务,国产系统需先安装GMS框架
  • 所有配置修改完成后,先执行flutter clean清理项目缓存,再重新打包运行,避免旧缓存导致配置不生效

内容的提问来源于stack exchange,提问作者Elyas Sekhavati Nia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 16:54:03