发布版Android应用无法认证Gmail API问题求助
解决签名APK无法认证Gmail API的问题
这种问题我碰到过好多次,核心原因其实很简单——你的调试版和签名版用的是不同的签名密钥,而Google Cloud控制台里的API凭据只认调试密钥的指纹,所以正式签名的APK没法通过认证。下面是一步步解决的方法:
第一步:获取正式签名密钥的SHA-1指纹
有两种简单的方式获取:- 使用
keytool命令(需要Java环境),在终端运行:
输入keystore密码后,就能看到keytool -list -v -keystore /path/to/your/keystore.jks -alias your_key_aliasSHA1对应的一串字符,复制下来。 - 在Android Studio里操作:点击顶部菜单栏的
Build -> Generate Signed Bundle/APK,选择APK后点击下一步,选中你的keystore文件并输入密码、alias和密码,然后点击界面右下角的Show Certificate Fingerprints,直接复制SHA-1的值即可。
- 使用
第二步:更新Google Cloud控制台的OAuth凭据
打开你的Google Cloud项目,进入API和服务 -> 凭据页面,找到你之前创建的Android类型的OAuth 2.0客户端ID。点击编辑按钮,把刚才复制的正式SHA-1指纹添加到SHA-1证书指纹列表里,然后保存更改。第三步:同步google-services.json文件
在Google Cloud控制台的凭据页面,找到刚才编辑的客户端ID,点击右侧的下载按钮,下载最新的google-services.json文件,替换你Android项目中app目录下的旧文件。第四步:重新构建签名APK
回到Android Studio,先清理一下项目(Build -> Clean Project),然后重新通过Build -> Create signed APK生成签名包,安装到手机上测试,应该就能正常完成Gmail API的认证了。
额外注意事项
- 如果你的应用计划发布到Google Play,并且启用了Google Play应用签名,那么除了自己的签名密钥SHA-1,还需要把Google Play控制台里
应用签名页面的应用签名证书SHA-1和上传证书SHA-1都添加到Google Cloud的凭据里,避免发布后出现认证问题。 - 确认你在Google Cloud控制台里已经启用了Gmail API(调试版能正常工作的话,这一步应该已经完成,但可以再核对一下)。
内容的提问来源于stack exchange,提问作者Erik Johansson
相关产品推荐
相关产品推荐

