Google APIs Java Client适配Play商店构建版本失败求助
问题根源与解决方案
这问题我碰到过好多次了——核心原因就是Google Play App Signing在你发布应用后替换了你的签名证书!你之前在Google Cloud Console里填的生产版SHA-1是自己本地签名的指纹,但Play商店发布的应用用的是Google为你生成的应用签名证书,两者不匹配,导致OAuth 2.0授权失败,自然就没法调用Drive API了。
下面是一步步的解决步骤:
1. 获取Play商店生成的应用签名SHA-1指纹
- 打开Google Play Console,找到你的应用
- 左侧导航栏点「发布」→「设置」→「应用签名」
- 在「应用签名证书」板块里,复制SHA-1证书指纹(注意别复制「上传证书」的,那个是你上传APK/App Bundle用的,不是最终应用的签名)
2. 更新Google Cloud Console的OAuth客户端ID
- 打开Google Cloud Console,进入你的项目
- 导航到「API和服务」→「凭据」
- 找到你之前创建的Android类型生产版OAuth 2.0客户端ID
- 点击编辑按钮,把刚才从Play Console复制的SHA-1指纹添加进去,保存配置
3. 验证并重新发布
- 确认客户端ID的包名和你应用的包名完全一致(大小写都不能错)
- 用你自己的生产签名重新打包APK/App Bundle,上传到Play商店
- 等Play商店完成发布后,下载更新后的应用测试Drive功能
额外提醒几个坑
- 如果你用了App Bundle,这个逻辑同样适用——Play商店依然会替换签名,必须用应用签名证书的SHA-1
- 本地测试时,你用自己的签名没问题,但发布到Play后,一定要更新OAuth客户端ID的指纹,否则授权永远失败
- 要是你之前创建的客户端ID是通用的,记得别把开发版和生产版的指纹搞混,最好给客户端ID起个清晰的名字,比如「MyApp-Drive-Prod-PlaySign」
内容的提问来源于stack exchange,提问作者Karanayyana
相关产品推荐
相关产品推荐

