由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。

访客 256 0

前言:

最近接了几款游戏 里面携带了facebook 授权登录和google 授权问题

问题场景

在没有上线之前 我们运营和测试 验收都没有问题 但是把游戏包发到商店后再重商店下载出来就不能授权登录。

原因

因为App上传到Google Play后,Google Play 有个签名的选择,默认是选择Google Play 的二次签名(Play App Signing),所以在开发过程中使用本地的签名文件生成的MD5值和在Key Hashes值就无效了。基于这种情况,一般两种解决方案,Google Play 也给了很明确的说明:

解决方案

  • 方案一

一. 将本地的签名更改成Google Play 提供的签名,好处是本地和Google play 线上的统一,方便以后管理,缺点是:之前默认Google 签名的老项目不太好更改了

  • 方案二

二. 兼容Google Play的签名,获取到Google Play 的签名文件的MD5和Key Hashes,然后填入对应的三方平台
本文重点讲解选择了方式二的处理步骤:
1.登录Google Play console 后台: https://play.google.com/console/u/0/developers

选择对应的项目---->进入到具体APP Project 管理中 -------->选择左侧的:Setup—>App integrity–>APP signing ----->找到签名证书:App signing key certificate ---->Download certificate
如果是中文步骤:Google Play Cosole -> Your App -> 设置 -> 应用完整性 -> 应用签名密钥证书 -> 下载证书,得到证书文件deployment_cert.der
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第1张图片-谷歌商店上架

  • 2.然后把证书加到原本地应用签名文件jks或keystore文件内
keytool -import -file [Google Play下载的deployment_cert.der路径]  -keystore  [本地应用jks或keystore文件路径]

这样就得到了一个新的签名文件
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第2张图片-谷歌商店上架

然后执行 keytool -list -v -keystore xxx.jks

  • 3.获取新增的别名信息YOUR_RELEASE_KEY_PATH为本地修改后的jks文件路径,获取到的新别名应该为mykey还有新的MD5值 keytool -list -v -keystore YOUR_RELEASE_KEY_PATH

由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第3张图片-谷歌商店上架

  • 4.完成步骤三就可以将新的签名文件的MD5 SHA1上传到Firbase 后台 https://console.firebase.google.com/ Project Overview—>Setting ---->Project settings ---->General---->添加新的SHA1和SHA-256 到目前为止,Google login 的问题解决了,测试下Google login success了

由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第4张图片-谷歌商店上架

  • 5.Facebook 登录需要签名文件的Key Hashes :

keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
如果是windows 需要安装openssl linux 和mac os 是需要安装的直接执行命令即可

openssl 环境配置

百度网盘下载
链接: https://pan.baidu.com/s/1dHVBjNCHuNZX3Y5xxIidyw 提取码: vdxj 复制这段内容后打开百度网盘手机App,操作更方便哦
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第5张图片-谷歌商店上架
把你的openssl 安装的bin目录 路径复制 添加到环境变量里面
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第6张图片-谷歌商店上架
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第7张图片-谷歌商店上架
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第8张图片-谷歌商店上架
然后点击确定 我们打开cmd 然后 openssl version
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第9张图片-谷歌商店上架
我们看到环境搭建成功了 我们现在生成散列
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第10张图片-谷歌商店上架
这里我们要特别注意 我刚才上面的操作 我们把google 后台下载的证书添加到了我们本地的jks 签名文件里面 所以我们再查询jks签名文件的时候 里面有2个别名 ,所以我们要特别主题 要用mykey这个别名的才是我们商店下载出来的证书的
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第11张图片-谷歌商店上架
这边我们已经生成了新的散列 我们只需要填在firebase后台即可
由于Google二次签名的问题,导致用户在登录Facebook和Google时遇到了失败的情况。-第12张图片-谷歌商店上架
然后测试facebook 授权登录成功 到此我们的文章记录就讲完了。

最后总结 :

这个问题主要是平时遇到了 所以再次记录做个笔记 我希望能帮助到各位网友和同学, 也希望网友和同学能 平时多积累 这样关键时刻就不会 一头雾水 。这个时代只会淘汰那些 没有准备的和积累的人。最后希望我都文章能帮助各位同学工作和学习 。如果觉得文章还不错希望能给我一个star 和转发

标签: 文件 证书 别名 路径

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~