我有一个奇怪的问题。
我正在尝试使用他们的sdk将facebook登录集成到我的应用中。我能够登录工作,一切顺利。现在我们希望发布产品,所以我签了apk并使用openssl命令将发布的keyhash添加到facebook。
为了正确测试everythnig我从设备中删除了应用程序并将其作为用户从我的Facebook帐户中清除。 安装应用程序后,我确实能够登录,一切正常。然而,再次卸载应用程序(这次没有从Facebook帐户清除应用程序)并再次安装它我收到哈希密钥不匹配。因为我使用相同的签名apk,所以对我没有任何意义。
另请注意,只有在设备上安装了原生Facebook应用程序时才会发生这种奇怪的事情。
以前有人遇到过这样的问题吗?我一直在和这个摔跤
答案 0 :(得分:3)
很抱歉,但我没有评论可能有声誉,但之前也发生过同样的事。 当我们创建发布版apk时,它将生成新的哈希密钥。为此,您可以从android studio运行发布模式apk并将密钥从代码写入控制台,然后将此密钥添加到Facebook帐户。生成密钥代码如下:
//获取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());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}