背景
已经在Google Play上架的应用,因为中途加入Google Play签名计划导致新版本App无法使用Facebook登录。所以需要重新到Facebook开发者后台添加Google Play签名计划中的证书的SHA-1的key hash。
本地Release包可以正常使用Facebook登录,而通过Google Play安装的包(以下简称GP包)无法使用Facebook登录,一般都是Key hash不对。
通常表现为GP包在使用Facebook登录时,会在logcat中打印Error日志,内容大概是签名的Key hash不匹配。或者出现以下错误:Login Error: There is an error in logging you into this application. Please try again later.
解决办法
- 登录Google Play Console,并进入对应的App页面。
- 在左边菜单栏依次选择
Release management
->App signing
- 然后将应用签名证书的SHA-1证书指纹复制下来。(不要把
SHA-1:
也复制下来,只要xx:xx:xx...这部分) - 执行一下代码
echo xx:xx:xx... | xxd -r -p | openssl base64
就能拿到对应的SHA-1的key hash,把它复制到Facebook的开发者后台中就可以了。
xxd工具
xxd是一个将文件以16进制进行显示的工具。
- -r 表示逆向操作,即将16进制文件转换为2进制文件;
- -p 以postscript的方式连续十六进制转储输出,也就是纯十六进制转储。即将
00000000: aaaa bbbb cccc
的输出方式改为aaaabbbbcccc
。