我使用Facebook登录集成到我的应用程序。我为已签名的APK配置了哈希密钥Facebook并成功运行。但有时当我发布一个新的APK文件时,哈希键不再有效("无效的密钥哈希facebook android与任何存储的"无关。)。
我在下面看到这个链接,发现"另外,根据PC,有时密钥可能会改变,如果是这样,哈希会改变,你必须只适应那个" android hash key
你可以请我解释一下这方面的更多细节吗? 用于签名APK的哈希密钥Facebook有时会改变吗?应用程序何时上传到Play商店怎么样?非常感谢。
答案 0 :(得分:0)
调试密钥哈希在切换PC时会发生变化,因为每台PC都有不同的debug.keystore文件。使用release.keystore文件获取release keyhash时,即使切换PC也不会更改。在这种情况下,您使用的是相同的release.keystore文件。
答案 1 :(得分:0)
每当您的应用程序处于开发阶段时,调试哈希密钥用于Facebook集成。调试哈希键是特定于机器的(即您正在使用的PC)
与调试密钥相比,发布散列密钥不同(它不会改变)。生成已签名的apk以进行上载时,必须更新版本哈希密钥,以便与您的应用进行Facebook集成。
阅读this以更好地了解如何为facebook
创建发布哈希密钥您可以使用以下代码检查密钥哈希:
// Add code to print out the key hash
try {
String PACKAGE_NAME=getApplicationContext().getPackageName();;
PackageInfo info = getPackageManager().getPackageInfo(
PACKAGE_NAME,
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 (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
答案 2 :(得分:0)
您需要在Facebook上注册开发人员哈希键(与您的计算机相关)和生产哈希键(与签名版本相关)。 要确保使用正确的密钥,请在代码中运行并复制输出:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"Your package name",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
System.out.println(Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}