RELEASE_KEY_ALIAS和RELEASE_KEY_PATH值用于生成密钥哈希

时间:2015-01-20 16:04:56

标签: android facebook hash key

1-我尝试生成用于将Android与Facebook集成的密钥哈希。我知道我必须在提示符下运行以下命令(我在Windows上):

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

但是我在哪里可以获得RELEASE_KEY_ALIAS和RELEASE_KEY_PATH的值? 请帮助我,我已经浏览了很多,并且无法找到从哪里获得它们。

2- stackoverflow回答说另一种获取哈希密钥的方法是下载this,并在我的Android设备上运行。当我将它导入Eclipse时购买我得到了一些我不知道很难解决的错误。问题是this one

2 个答案:

答案 0 :(得分:29)

将应用程序发布到Google Play商店时,需要使用Java密钥库对其进行签名。如果您尚未发布并且您没有密钥库,则需要立即配置密钥库。有关详细信息,请查看Signing Your Application文档。

RELEASE_KEY_ALIAS :每个密钥库都可以包含多个别名。您可以使用不同的别名来标记不同的应用程序,也可以使用相同的别名对多个应用程序进行签名。例如,默认调试密钥库只有一个别名 - androiddebugkey。如果您已经拥有密钥库并且不知道要使用哪个别名,请运行命令keytool -list -v -keystore YOUR_KEYSTORE_FILE以查看所有可用的别名。

RELEASE_KEY_PATH :这是您计算机上密钥库的路径。它可能看起来像C:\Users\somezombie\myproject\release.keystore

拥有密钥库后,您可以运行您发布的命令以获取Facebook所需的哈希值。请记住,Facebook可能还要求您使用调试密钥库进行调试构建。

答案 1 :(得分:0)

另一种方式:

1 - 在onCreate中过去此代码。

2 - 运行您的应用。

3 - 检查您的logcat!您的哈希将以红色显示

公共类MainActivity扩展了AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo(
                getPackageName(),  //Or replace to your package name directly, instead getPackageName()  "com.your.app" 
                PackageManager.GET_SIGNATURES);

        for (Signature signature : info.signatures) {
            MessageDigest md = MessageDigest.getInstance("SHA");
            md.update(signature.toByteArray());

            Log.e("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
        }
    } catch (PackageManager.NameNotFoundException | NoSuchAlgorithmException e) {

    }
}