Roc*_*ula 14 android facebook signing
我正在使用新的Google Play应用程序签名来签署我的应用程序,并且存在不匹配的密钥哈希.
我在我的应用程序中集成了Facebook登录,它说keyhash无效.我的APK的keyhash版本与Google Play App Signing流程创建的keyhash版本不同.
编辑:我做的第一步:
1)创建了一个jks密钥库文件.
2)创建了一个用jks文件签名的apk版本.
3)在Google Console Developer中导入APK,订阅Google Play App Signing,修改签名密钥.
4)一旦上线,我下载并打开应用程序,Facebook初始化说:无效密钥哈希
当我通过下面的代码检查应用程序中的hashkey时,哈希键与Facebook所说的无效哈希键不同:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.package",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Run Code Online (Sandbox Code Playgroud)
即使我把Facebook上的hashkey放在Facebook仪表板中,它也行不通.似乎Google Play App Signing在签名过程中修改了hashkey.你有想法解决它吗?
Nee*_*ani 31
您必须使用Google生成的SHA-1密钥.以下步骤将解决它.
1).转到Google控制台=> 发布管理 => 应用程序签名 => 应用程序签名证书.
2).从那里复制SHA-1证书,因为它是十六进制的,因为Facebook需要它在base64中,所以使用步骤3中显示的命令
3).从步骤2(十六进制) | 回显SHA-1键 xxd -r -p | openssl base64
此命令在命令提示符下无法在windows或git cli 上使用bash.
4).粘贴BASE64键中的Facebook控制台 => 设置 => 基本 => 键散列
小智 24
我有同样的问题,看起来正如你所说,Google Play商店用新密钥重新签名你的apk,这就是你必须提供给Facebook作为密钥哈希(不是使用keytool生成的密钥).
这个答案的后半部分/sf/answers/3111390621/很有用.
基本上你需要为Facebook提供基于谷歌生成的SHA-1应用程序签名证书的哈希值,而不是使用keytool和你的本地密钥(它似乎现在只用于上传到谷歌).
Gar*_*ain 10
您可以使用下一条命令(可能在Git Bash上)将十六进制格式的SHA-1哈希(在Play控制台中找到)转换为base64哈希:
echo 33:4E:48:84:19:50:3A:1F:63:A6:0F:F6:A1:C2:31:E5:01:38:55:2E | xxd -r -p | openssl base64
Run Code Online (Sandbox Code Playgroud)
输出:
M05IhBlQOh9jpg/2ocIx5QE4VS4=
Run Code Online (Sandbox Code Playgroud)
例如,在设置Facebook应用程序时可以使用此哈希。答案来源
| 归档时间: |
|
| 查看次数: |
9322 次 |
| 最近记录: |