无法生成正确的发布密钥哈希(Android Facebook Sdk)

Cannot generate proper release Key Hash (Android Facebook Sdk)

我正在完成一个使用 Android Facebook SDK 的应用程序,以便使用 Facebook 登录。我的应用程序必须使用正确生成的密钥散列进行配置,该散列必须存在于我的计算机上,并且还必须设置到我的 Facebook 开发人员控制台中。

当我从我的 Android 应用程序打印当前密钥散列时,使用在其他类似的 Whosebug 帖子上找到的一段代码,它记录了我过去使用的旧密钥散列到我的 Facebook Developper 控制台.它可能是 debug 密钥哈希。

现在我尝试使用 keytool 命令生成一个 release keyhash。 因为我正在研究 Mac :

keytool -exportcert -alias MyReleaseKey -keystore ~/.android/myreleasekey.keystore | openssl sha1 -binary | openssl base64

我几乎尝试了所有方法,但此命令从不要求我输入密码,也从不生成文件。有人说如果不要求输入密码,那么输入的路径可能是无效的。 所以,我尝试了所有路径,以及我在互联网上可以找到的所有东西,例如删除由 Android studio 生成的 ~/.android/debug.keystore。没有任何效果...

为什么我不能生成我的发布密钥哈希? 是否必须将其存储到 ~/.android/ 文件夹中? 我知道在生成 debug keyhash 时,我们必须输入 "android" 密码作为密钥库密码。我可以为发布密钥库输入我想要的密码吗?

and the file is never generated.

为什么你希望生成一个文件?该命令只是应该输出一个字符串,然后您将其粘贴到 Facebook 开发控制台中。

您如何生成您的发布 APK?查看 app/build.gradle 或转到 Android Studio 内的 Build -> Generate Signed APK 并查找密钥库文件的路径(它可能以 .keystore.jks 结尾)。

现在,简化生成 APK 的命令,直到您确定已找到路径。仅使用

keytool -exportcert -alias MyReleaseKey -keystore ~/.android/myreleasekey.keystore

不会掩盖任何错误,并准确告诉您错误所在。