问:这些密钥哈希有什么作用?
- 它们唯一地标识您的密钥库和应用程序。这是一个独特的
您的应用程序的指纹:
签署您的应用程序
- Android 要求所有应用都使用证书进行数字签名
在安装之前。 Android 使用此证书
识别应用程序的作者,证书不需要
由证书颁发机构签署。 Android应用经常使用
自签名证书。应用程序开发者持有证书的
私钥。
签名概述
- 您可以在调试或发布模式下签署应用程序。你登录你的应用程序
开发期间的调试模式和准备就绪时的发布模式
分发您的应用程序。 Android SDK 生成证书以
在调试模式下签署应用程序。要在发布模式下签署应用程序,您需要
生成自己的证书。供您进一步参考,您可以
看看 keyhashes 在哪里
http://developer.android.com/tools/publishing/app-signing.html
https://developers.facebook.com/docs/facebook-login/android
问:为什么需要为发布和开发创建不同的密钥哈希?
如您所知,android 使用不同的 Keystore 进行开发和发布,因为这两个 keystore 在各个方面都不同,所以它们都有不同的指纹和 SHA-1 哈希,因此它们的处理方式完全不同。
问:如果我还没有将我的应用发布到 PlayStore。我可以使用发布密钥而不是开发密钥吗?
是的,您只能将发布密钥用于生成 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();
}
}