我正在构建一个用户可以使用Facebook登录的应用程序.
我已经创建了如下的哈希键:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.app.package",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash", "KeyHash:"+ Base64.encodeToString(md.digest(),
Base64.DEFAULT));
Toast.makeText(getApplicationContext(), Base64.encodeToString(md.digest(),
Base64.DEFAULT), Toast.LENGTH_LONG).show();
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Run Code Online (Sandbox Code Playgroud)
在调试模式下,一切运行良好.
当我导出项目以供发布时,它会出现以下错误:
"Invalid key hash. The key hash ****************** does not match any stored key hashes"
Run Code Online (Sandbox Code Playgroud)
我粘贴了Facebook Developer仪表板中打印的密钥,但应用程序仍然给我错误.
我的行为的完整包是" com.app.package.views",我试图在仪表板中使用此包(作为Google Play包名称),但没有任何改变.
我该如何解决?如何生成正确的发布密钥哈希?