密钥哈希不匹配签名的apk

时间:2018-04-05 10:46:36

标签: android facebook-graph-api

我在我的应用中集成了facebook登录,并使用release .jks play store signin file 创建了密钥哈希,并在fb控制台中添加了生成的keyhash,并且没有添加任何其他密钥哈希。现在,当我尝试使用fb登录登录时,它会出错:

密钥哈希无效。密钥哈希xxxxfgxxxdfdsxxx =与任何存储的密钥哈希值不匹配。在https://developers.facebook.com/apps/xxxxx7xx4xxxx/

配置您的应用密钥哈希值

及以上(xxxxfgxxxdfdsxxx =)给定的密钥哈希甚至不在我的fb开发者控制台中。

1 个答案:

答案 0 :(得分:0)

我不知道为什么但是看Facebook需要两个关键的哈希值,

1)我们使用.jks文件释放密钥哈希创建

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

2)它还向我们显示设备中的(xxxxxxxxxx =)键在您的键哈希值中不匹配。

它在您的活动中使用此方法。

public void getHashkey(){
    try {
        PackageInfo info = getPackageManager().getPackageInfo(getApplicationContext().getPackageName(), PackageManager.GET_SIGNATURES);
        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());

            Log.i("Base64", Base64.encodeToString(md.digest(),Base64.NO_WRAP));
        }
    } catch (PackageManager.NameNotFoundException e) {
        Log.d("Name not found", e.getMessage(), e);

    } catch (NoSuchAlgorithmException e) {
        Log.d("Error", e.getMessage(), e);
    }
}

所以当我们输入两个关键的哈希值时。它运作得很好。