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

Flutter集成Google Sign-In:Android端Web Client ID可用,Android Client ID报错

解决思路与排查步骤

1. 检查Identity Platform的Google Provider配置细节

  • 确认Identity Platform中Google Provider的设置里,是否存在专门的Android客户端配置项(部分界面版本会单独要求填写Android Client ID和对应SHA-1),而非仅将其加入Allowed client IDs列表。
  • 验证自动创建的Web Client与你的Android Client是否绑定:检查Android Client的"Authorized redirect URIs",确认包含自动生成的Web Client的回调地址。

2. 重新校验Android Client ID的SHA-1密钥

  • 重新生成调试密钥的SHA-1,确保与Credentials页面的记录完全一致:
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    
  • 注意区分调试密钥和发布密钥,若近期更换过开发设备或密钥库,SHA-1可能已发生变化。

3. 确认Oauth同意屏幕的状态

  • 若近期修改过Oauth同意屏幕配置,检查是否重新发布:处于"Testing"状态的同意屏幕会限制测试用户范围,若当前账号不在测试列表内也会触发错误10。
  • 确保同意屏幕的应用名称、隐私政策链接等信息符合Google要求,无过期或违规内容。

4. 核对Flutter端google_sign_in的初始化配置

  • 确保Android端初始化GoogleSignIn时,正确传入Android Client ID:
    final GoogleSignIn _googleSignIn = GoogleSignIn(
      clientId: "你的Android Client ID",
      scopes: ['email', 'profile'],
    );
    
  • 检查android/app/src/main/AndroidManifest.xml是否添加了必要的meta-data:
    <meta-data
      android:name="com.google.android.gms.version"
      android:value="@integer/google_play_services_version" />
    

5. 验证Credentials页面的Android Client配置

  • 确认Android Client ID的包名与Flutter项目android/app/build.gradle中defaultConfig下的applicationId完全一致,大小写、拼写均不能出错。
  • 检查是否为Android Client添加了所有需要的SHA-1,比如使用第三方构建工具或测试服务时,可能需要额外添加对应环境的SHA-1。

关于"改用Web Client ID正常"的合理性

这种情况是合理的,Web Client ID的权限校验更宽松,默认允许Android端通过WebView模式完成授权,但这并非生产环境的推荐配置(安全性更低)。Android Client ID依赖严格的包名+SHA-1校验,只要任一校验项不匹配就会触发错误10。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:07:17