集成Google Fit API的安卓应用上线后无法跳转权限请求页问题排查
嘿,这种卡在Google账号选择页的问题我踩过好多次,核心原因基本都是发布版和测试版的签名/凭证不匹配,或者API权限配置没跟上。给你列几个必查的关键点:
1. 补全Play App Signing对应的SHA-1凭证配置
当你启用了Play App Signing(现在Google Play强制要求),发布版APK的签名会由Google托管,你本地调试用的SHA-1和发布版完全不同,这是最容易遗漏的点:
- 打开Play控制台 → 你的应用 → 版本管理 → 应用签名 → 复制应用签名证书的SHA-1值
- 切换到Google Cloud控制台 → 你的项目 → API和服务 → 凭据 → 找到对应Google Fit的Android类型OAuth 2.0客户端ID → 编辑凭证,把刚才复制的SHA-1添加进去,务必保存
2. 把Google Fit API从测试状态切换为正式发布
测试阶段你可能只添加了测试用户,但发布后普通用户无法访问处于测试状态的API:
- 进入Google Cloud控制台 → API和服务 → 库 → 找到Google Fit API → 点击「管理」
- 左侧菜单选择「OAuth同意屏幕」→ 确认状态是已发布(如果是「测试中」,只有你添加的测试用户能正常授权,普通用户会卡在账号选择页)
3. 验证Play商店的权限声明配置
就算代码里加了权限,Play商店后台也需要正确声明敏感权限(比如健身数据相关的ACTIVITY_RECOGNITION),否则可能导致权限请求弹窗不触发:
- 打开Play控制台 → 你的应用 → 政策与合规 → 权限和声明
- 检查是否正确勾选了所有Fit相关的权限,并且填写了对应的权限使用说明(空着的话可能会被Play商店限制权限请求)
4. 检查ProGuard/R8混淆规则
发布版构建时,ProGuard可能会混淆Google Fit的核心类,导致账号授权后无法触发后续流程:
确保在proguard-rules.pro里添加以下规则:
-keep class com.google.android.gms.fit.** { *; } -keep class com.google.android.gms.auth.api.signin.** { *; } -keep class com.google.android.gms.common.api.** { *; }
5. 排查账号授权回调的错误日志
可以在发布版代码里添加非敏感日志(比如只打印错误码),看看ActivityResultCallback或者旧版的onActivityResult里是否收到RESULT_CANCELED但无具体错误信息——这种情况90%都是签名/凭证不匹配导致的。
内容的提问来源于stack exchange,提问作者User-Finland
相关产品推荐
相关产品推荐

