Android端Google SignIn出现APIException 10问题求助
解决Play内部应用共享下Google登录APIException 10的问题
我之前碰到过几乎一模一样的情况,结合你的排查信息,问题大概率出在Play内部应用共享的动态签名机制上,给你几个针对性的解决方案:
获取并添加内部应用共享的实际签名指纹
Play内部应用共享会对上传的APK进行重新签名,这个签名的SHA1指纹你可能没加到Firebase和Google控制台里。操作步骤:- 打开Play Console,进入「内部应用共享」页面
- 找到你上传的测试APK,点击进入详情页
- 下拉到「签名证书」区域,复制这里显示的SHA1指纹
- 把这个SHA1添加到Firebase项目设置的「SHA证书指纹」列表中,同时更新项目里的
google-services.json(重新下载最新的替换即可) - 同步到Google Cloud Console的OAuth 2.0客户端ID配置中(确保对应Android客户端ID包含这个指纹)
验证OAuth客户端ID的完整性
有时候Firebase添加SHA1后,对应的OAuth客户端ID不会自动同步所有指纹。你可以手动去Google Cloud Console检查:- 进入Google Cloud Console,找到你的生产环境项目
- 进入「API和服务」→「凭据」页面
- 找到对应Android平台的OAuth 2.0客户端ID,编辑它的「签名证书指纹」,确认已经包含内部应用共享的SHA1、你之前添加的三个密钥指纹
彻底清理后重新安装
旧的应用缓存可能残留了错误的签名验证信息,导致新安装的应用仍报错。建议:- 卸载设备上的应用
- 清除Google Play商店的缓存(设置→应用→Google Play商店→存储→清除缓存)
- 重新从内部应用共享下载并安装应用
确认
google-services.json的正确性
确保你项目中使用的是添加了所有SHA1后的最新google-services.json,并且打包生产环境APK时没有误用到UAT环境的配置文件。可以打开json文件,检查client[0].oauth_client[].cert_hash字段是否包含所有需要的SHA1对应的哈希值(注意是Base64编码的,和你复制的SHA1是对应关系)
内容的提问来源于stack exchange,提问作者Sriram
相关产品推荐
相关产品推荐

