我希望为我的应用程序生成一个应用程序签名,稍后将与Facebook集成.在Facebook的一个教程中,我发现了这个命令:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)
在本教程中,它表示通过运行此cmd,我的生成签名的过程将开始.
但是,此命令会出错:
openssl is not recognized as an internal or external command
Run Code Online (Sandbox Code Playgroud)
我怎么能摆脱这个?
我根本不明白这个过程.我已经能够导航到Java SDK中包含keytool的文件夹.虽然我不断收到错误openssl未被识别为内部或外部命令.问题是即使我可以让这个工作,我会做什么以及之后做什么?
试图用Facebook集成创建一个Android应用程序,我已经得到了你必须生成一个密钥哈希文件的文档中的部分,它指定运行以下代码
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore
| openssl sha1 -binary
| openssl base64
Run Code Online (Sandbox Code Playgroud)
当我在终端中运行此操作时,我发现Keystore被篡改或密码错误,
我只想生成我的Key Hash
谁能指出我正确的方向?
我的应用程序使用简单的Facebook登录.我已经在我的应用仪表板,key_hash部分输入了keyhash,我能够成功登录.现在我已经发布了应用程序并尝试登录,但是它在webview上显示错误消息
"Invalid android_key parameter. The key rX6qeRitkFCWui3de74rxB_qc1s does not match any allowed key. Configure your app key hashes at http://developers.facebook.com/apps/<my_fb_app_id>".
Run Code Online (Sandbox Code Playgroud)
实际上rX6qeRitkFCWui3de74rxB_qc1s不是我在本机应用程序中的密钥哈希.它来自哪里?无论如何,我也在本机应用程序中输入了此键盘,但收到相同的错误消息,无法登录.哪里出错了?请帮我.
我已经完成了开发一个使用facebook sdk与Facebook集成的Android应用程序.我没有任何问题或问题需要解决这个应用程序,因为它功能齐全,运行良好 - 但据说我相信即使应用程序运行,我仍然不完全明白什么是Android密钥哈希.
1)我理解facebook sdk为开发人员提供了一个独特的应用程序ID,以便知道他们与谁"交谈",这样他们也可以控制谁是谁等等,但是他们从你的android密钥哈希获得了什么?
2)我明白我的开发PC上的模拟器有一个密钥哈希(我得到),三星Galaxy S1和S2(两者都有相同的密钥哈希)有一个不同的,现在我已通过apk另一个用户具有不同的密钥哈希(以及不同的手机品牌和Android版本).那么 - 如果我有一天在Google Play上发布我的应用程序,我是否需要更新所有可能的哈希密钥的Facebook /开发人员?
3)哈希键对于模型或平台/ android版本是唯一且恒定的,或者我可以从我的应用程序生成密钥哈希所以我可以添加它并使从不同手机运行的所有相同的应用程序使用相同的?
4)一般来说 - 我不明白什么是关键哈希,谁生成它,最重要的是为什么 - 关键哈希的用途是什么,以及它对Facebook有什么好处?
我试图搜索它,但是在这里我发现了关于知道什么是模拟器密钥哈希的步骤的问题或者关于如何处理谷歌上的Facebook /开发者的指示.我确信有文件涵盖了这个,找不到它.
谢谢!
我正在开发一款Android应用.在我的应用程序中,我正在整合Facebook登录.我的facebook登录工作正常.但是当我制作发行版apk并运行该应用程序并尝试使用Facebook登录时无效.请参阅下面的方案.
然后我使用该jks文件路径生成keyhash.
我有一个哈希键,然后将其添加到开发人员配置文件设置中.
当我在我的设备上安装并运行该apk并使用Facebook登录时,它总是显示如下错误.
Facebook哈希密钥配置错误.实际上我所做的所有步骤都是正确的.所以我尝试的是,我尝试将该哈希密钥复制到开发人员设置而不工作.我尝试了另一种方式.我用新密钥(不同的jks文件)生成了新版本apk.然后我为它生成了哈希密钥并将其添加到开发人员设置中.然后我在手机上运行app并登录.它给了我同样的错误.此外,即使我使用不同的密钥生成另一个版本apk,它也会显示相同的哈希密钥相同的错误.怎么了?
这是额外的
所有的发布apk都可以在第一时间登录Facebook.然后再次登录.以上错误显示.卸载应用程序并再次安装不起作用.但是,如果我生成一个具有不同密钥库的发布apk,它第一次工作,然后不工作.卸载并重新安装不起作用.什么是可能的错误?
我想在Google Play上发布我的应用.我的应用程序中有Facebook登录.直到昨天一切正常,直到我运行应用程序时debug.keystore.但是,当我使用自己的发布密钥并签署我的应用程序Facebook没有登录时,我似乎无法弄清楚原因.
按照这个链接,并做了所有这些方法:所以:key-hash-for-android-facebook-app
我改变了机器,我改变了平台(windows和mac osx ML)以获得解决方案,但同样的问题.它没有登录.当我使用debug.keystore时,下面的代码给了我正确的哈希键,当我使用不同的密钥签署应用程序时,我得到相同的Hashkey(我在得到很多试验之后得出结论,我得到的密钥是错的)
PackageInfo info;
try {
info = getPackageManager().getPackageInfo("com.you.name", PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md;
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String something = new String(Base64.encode(md.digest(), 0));
//String something = new String(Base64.encodeBytes(md.digest()));
Log.e("hash key", something);
}
} catch (NameNotFoundException e1) {
Log.e("name not found", e1.toString());
} catch (NoSuchAlgorithmException e) {
Log.e("no such an algorithm", e.toString());
} catch (Exception e) {
Log.e("exception", e.toString());
}
Run Code Online (Sandbox Code Playgroud)
因此,在使用发布密钥对应用程序进行签名时,我们需要采取哪些额外步骤.请帮忙.