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

Flutter中Google Sign-In报ApiException:10错误的解决求助

解决Flutter Google Sign-In的ApiException:10错误

ApiException:10本质是OAuth 2.0客户端身份验证失败,结合你已完成的排查步骤,以下是容易遗漏的配置点及解决建议:

核心排查方向

1. 确认Flutter Debug签名的SHA-1完全匹配

执行命令获取Flutter默认debug keystore的SHA-1:

# Mac/Linux
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

# Windows
keytool -list -v -keystore C:\Users\<你的用户名>\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

将输出的SHA-1与Google Cloud Console中Android客户端ID的指纹对比,确保大小写、字符完全一致(无空格、无多余符号)。

2. 检查OAuth同意屏幕状态

  • 进入Google Cloud Console的「API和服务」→「OAuth同意屏幕」,确认状态为已发布(测试版仅允许添加的测试用户登录,未添加的账号会触发验证失败)。
  • 若使用测试状态,需确保当前登录的谷歌账号已添加到「测试用户」列表中。

3. 重新同步google-services.json

  • 从Cloud Console下载最新的google-services.json,替换Flutter项目android/app目录下的旧文件。
  • 检查文件内的client[0].package_name是否与Flutter应用包名完全匹配,client[0].oauth_client[0].client_id是否对应Cloud Console中的Android客户端ID。

4. 验证Flutter项目的签名配置

打开android/app/build.gradle,检查debug签名配置是否正确指向默认debug keystore:

android {
    signingConfigs {
        debug {
            storeFile file('~/.android/debug.keystore') // Windows路径需调整
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
}

避免自定义debug签名导致SHA-1不匹配。

5. 清除缓存并重新构建

  • 卸载设备上的Flutter应用,清除Google Play服务的缓存(设置→应用→Google Play服务→存储→清除缓存)。
  • 执行flutter clean后重新运行项目,确保构建使用最新的配置文件。

对比旧Kotlin应用的验证步骤

因为你的Kotlin应用可正常运行,可做以下对比排查:

  • 对比新旧应用的google-services.json,确认客户端ID、包名、SHA-1字段完全一致。
  • 检查旧应用的AndroidManifest.xml中Google Sign-In相关元数据(如com.google.android.gms.auth.api.signin.client_id),与Flutter项目的配置完全对齐。

内容的提问来源于stack exchange,提问作者Suhad Bin Zubair

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 05:07:14