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

Flutter Android正式版选账户后无法弹出OAuth 2.0验证界面授权步数数据共享

Flutter health包Google Fit release版授权失败排查思路

高频配置问题排查

  • 验证Android端混淆规则配置
    release版本默认开启R8代码混淆,若未配置保留规则,谷歌服务、health包相关类被混淆会导致授权回调链路断裂,弹窗无报错直接关闭。需在android/app/proguard-rules.pro文件中添加如下保留规则:
-keep class com.google.android.gms.** { *; }
-keep class com.google.fitness.** { *; }
-keep class cachet.plugins.health.** { *; }
  • 核对签名指纹是否匹配
    若你通过Google Play渠道分发应用且开启了Google Play官方签名服务,谷歌会自动替换应用签名,此时谷歌云后台填写的本地打包签名不生效,需前往Google Play控制台「应用完整性」页面获取谷歌生成的SHA-1指纹,更新到谷歌云OAuth2客户端ID的签名配置中。
  • 检查多环境配置一致性
    确认android/app/src/main/res/values/strings.xml(或release对应环境的配置文件)中填写的OAuth客户端ID为release版本对应的值,避免出现debug配置正确、release配置缺失或填写错误的情况。
  • 核对授权scope声明
    确认谷歌云OAuth同意屏幕中已经添加了所有应用用到的健康数据权限对应的scope,未声明的敏感scope在release版本会被谷歌直接拦截。
  • 核对测试用户列表配置
    未完成谷歌敏感权限验证时,只有添加到谷歌云OAuth同意屏幕「测试用户」列表内的账号才可正常授权,未加入列表的账号会触发未验证提示,不会直接关闭弹窗。如果你的测试账号未加入列表,补充添加后再测试。

问题定位方法

打可调试的release安装包,在Android Studio Logcat中过滤OAuth、Health、GoogleFit关键词,查看授权失败返回的错误码:

  • 返回12501错误基本可判定为签名、客户端ID不匹配问题
  • 返回12500错误一般为OAuth配置、scope声明问题

验证流程影响说明

未完成谷歌敏感权限验证不会导致授权弹窗直接关闭,仅会对非测试用户触发「应用未通过谷歌验证」的提示弹窗,因此当前问题与验证进度无关,优先排查前面的配置项即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 08:57:03