React Native GoogleFit.authorize 谷歌Play安装后无响应问题求助
故障排查方案
1 优先核对Google Play签名与OAuth配置
这是本地包正常、商店包异常的最常见诱因:
- 进入Google Play Console后台的「应用完整性」页面,复制Google Play托管签名的SHA-1指纹
- 打开Google Cloud Console的「APIs & Services > 凭据」页面,找到你配置的Android OAuth 2.0客户端ID,确认已填入上述Google Play托管签名的SHA-1,不要仅填写本地打包用keystore的SHA-1
- 确认OAuth客户端ID绑定的包名与你上传到商店的应用包名完全一致,无拼写偏差
2 检查OAuth权限验证状态
你使用的所有Fitness读取scope都属于Google OAuth的敏感/受限权限范围:
- 打开Google Cloud Console的「APIs & Services > OAuth同意屏幕」页面,确认发布状态不是「测试中」,测试状态下仅你添加的测试名单内的账号可以正常授权,其他普通用户授权会无响应
- 若使用了受限scope,必须完成Google官方的权限验证审核,审核通过后普通用户才能正常授权使用
3 补充代码缺失逻辑
当前代码存在未处理的分支,会导致授权失败无提示:
- 你当前仅处理了
authResult.success = true的场景,若授权返回success = false,既无日志也无提示,自然看起来无任何响应,参考下方代码补全分支:
const options = { scopes: [ Scopes.FITNESS_ACTIVITY_READ, Scopes.FITNESS_BODY_READ, Scopes.FITNESS_HEART_RATE_READ, Scopes.FITNESS_BLOOD_PRESSURE_READ, Scopes.FITNESS_SLEEP_READ, ], } GoogleFit.authorize(options) .then(async authResult => { console.log(JSON.stringify(authResult)); if (authResult.success) { dispatch(actionCreator.getActionObject('UPDATE_isGooglefitLoggedIn', true)); } else { // 生产环境建议将该结果上报至日志后台方便排查 alert("授权失败:" + JSON.stringify(authResult)); } }) .catch((error) => { alert("AUTH_ERROR", JSON.stringify(error)); })
- 生产环境默认关闭console日志,建议接入日志上报工具,将授权全流程的返回值、错误信息上报至后台,方便定位生产环境问题
4 检查混淆配置
若你的商店release包开启了ProGuard混淆,检查android/app/proguard-rules.pro文件,已添加你使用的React Native Google Fit相关库的混淆规则,避免核心类被混淆删除导致回调无法触发。
内容的提问来源于stack exchange,提问作者Gourab Mitra
相关产品推荐
相关产品推荐

