我阅读了FB Developer网站上的指南。
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore YOUR_RELEASE_KEY_PATH | openssl sha1 -binary | openssl base64
答案 0 :(得分:7)
问:这些Key Hashes做了什么?
签署您的申请
签名概述
http://developer.android.com/tools/publishing/app-signing.html
https://developers.facebook.com/docs/facebook-login/android
问:为什么需要为发布和开发创建不同的哈希值?
如你所知,android使用不同的Keystore进行开发和发布,因为两个密钥库在每个方面都不同,它们都有不同的指纹和SHA-1哈希,因此它们被完全区别对待。
问:如果我还没有将我的应用发布到PlayStore。我可以使用Release Key而不是使用Development键吗?
是的,您可以将发布密钥用于APK生成目的但是如果您处于调试模式,则此密钥根本不起作用。
问:如果我的应用程序在PlayStore中存在,我可以继续使用开发密钥吗?
是的,您可以继续使用开发密钥,但不能使用调试密钥。
问:我应该在YOUR_RELEASE_KEY_ALIAS和YOUR_RELEASE_KEY_PATH中添加什么内容?有人可以提供样品吗?
如果您关注Facebook密钥,问:为什么我们为iOS开发时,不需要这些关键哈希?
这是由于平台要求。没有必要,如果一个平台需要一个东西,另一个平台也是如此。
单点登录
单点登录大致是Facebook Connect等服务的扩展(和替代),将您连接到第三方社交应用和服务。如果您已使用手机登录Facebook,则可以使用Facebook凭据登录其他应用。
以下是生成fb指纹的代码。
public void generateFbFingerPrint() {
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.group3amd.gc.activity",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign = Base64
.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("KEYHASH:", sign);
Toast.makeText(getApplicationContext(), sign, Toast.LENGTH_LONG)
.show();
}
} catch (NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
答案 1 :(得分:3)
这些Key Hashes做了什么?
为什么需要为Release和Development创建不同的键哈希值?
Development key
以调试模式对应用进行签名&当您准备在Google Play上发布应用时,会使用release key
。如果我还没有将我的应用发布到PlayStore。我可以使用Release Key而不是使用Development键吗?
release key
如果我的应用程序在PlayStore中存在,我可以继续使用开发键吗?
release key
我应该在YOUR_RELEASE_KEY_ALIAS和YOUR_RELEASE_KEY_PATH中添加什么内容?有人可以提供样品吗?
警告:将密钥库和私钥保存在安全可靠的位置,并确保对其进行安全备份。如果您将应用程序发布到Google Play,然后丢失了用于对应用进行签名的密钥,那么您将无法向应用发布任何更新,因为您必须始终使用相同的密钥对应用的所有版本进行签名。
为什么我们为iOS开发时,不需要这些关键哈希?
Google play
对于FACEBOOK
,您必须为开发生成不同的key hash
并重新启动答案 2 :(得分:2)
这是你的答案。
开发密钥哈希 - 这仅用于测试,直到您尚未发布Play商店。 释放密钥哈希 - 这是没有此密钥哈希的原始哈希密钥Facebook在Play商店中不起作用。
如果您创建发布密钥哈希,则不需要创建2 haseh密钥,然后不需要创建开发密钥哈希。
答案 3 :(得分:0)
Facebook使用密钥哈希来验证您的应用与Facebook应用之间的互动。
如果您运行使用Facebook登录的应用,则需要将Android开发密钥哈希添加到您的Facebook开发者个人资料中。 对于您发布给您的应用程序版本,还需要生成并设置Release Key Hash。
在OS X或Windows上,您可以通过生成密钥或使用Settings.getApplicationSignature(Context)返回的值来获取密钥。
如需了解更多信息,请参阅以下链接,
https://developers.facebook.com/docs/android/getting-started