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
答案 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) {
}
}