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

Flutter生产环境Android端Google Sign-In报错问题求助

解决Flutter安卓生产环境Google Sign-In认证失败(ApiException:10)的方案

核心排查方向:Google Play应用签名机制的影响

当应用通过Google Play发布时,Google会替换你上传的APK签名,这时候必须额外配置Google Play生成的上传密钥SHA-1/SHA-256到Firebase控制台——哪怕原Kotlin项目的SHA-1已经存在,也不代表覆盖了生产环境的实际签名需求。

具体操作步骤

  • 登录Google Play控制台,进入目标应用 → 应用签名页面
  • 复制页面内上传密钥证书对应的SHA-1和SHA-256值(注意不是你本地的签名密钥)
  • 打开Firebase控制台,进入项目 → 设置 → 项目设置 → 应用
  • 找到对应安卓应用,点击添加指纹,将复制的SHA-1和SHA-256全部添加
  • 等待5-10分钟让配置生效,重新构建生产包上传至Google Play

其他可行修复点

  • 核对google_sign_in的客户端ID:确保Flutter代码中clientId使用的是Firebase控制台提供的安卓OAuth客户端ID,而非iOS或Web端ID。可在Firebase项目设置的OAuth 2.0 客户端ID列表中找到对应安卓的ID替换配置。
  • 检查Gradle签名配置:在安卓模块的build.gradle(app级)中,确认release构建的签名配置指向你上传到Google Play的密钥库,避免本地调试密钥与上传密钥混淆:
android {
    signingConfigs {
        release {
            keyAlias '你的密钥别名'
            keyPassword '密钥密码'
            storeFile file('你的密钥库文件.jks')
            storePassword '密钥库密码'
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            // 其他构建配置
        }
    }
}
  • 重置用户端凭据:让测试用户在设备上清除Google Play商店缓存,退出Google账号后重新登录,再尝试Flutter应用的登录流程。
  • 验证OAuth客户端关联:在与Firebase绑定的Google Cloud控制台中,进入API和服务 → 凭据,检查安卓客户端ID是否关联了正确的应用包名及所有相关SHA-1(包括Google Play生成的上传密钥SHA-1)。

开发环境正常的原因

开发环境使用的是本地调试密钥的SHA-1,该指纹已在Firebase配置完成;而生产环境中Google Play替换了应用签名,导致实际运行的应用签名SHA-1与Firebase配置不匹配,最终触发ApiException:10(此错误最常见的诱因就是签名指纹不匹配)。

内容的提问来源于stack exchange,提问作者MR. UNBOX

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:32:15