使用发布密钥的Android应用程序的Facebook登录名

问题描述:

我正在尝试在Google Play上发布我的应用.我的应用程序中有一个Facebook登录名.直到昨天,一切正常,直到使用debug.keystore运行应用程序为止.但是,当我使用自己的发布密钥并签署我的应用程序时,Facebook无法登录,而且我似乎无法弄清楚原因.

I am trying to release my app on Google Play. I have a Facebook login in my app. Up until yesterday all was working fine till the time I was running the application with debug.keystore. But when I use my own release key and sign my application Facebook doesn't login and I cant seem to figure out why.

关注此链接并完成所有其他方法: so:key-hash -for-android-facebook-app

Followed this link and did all that was meth as well : so : key-hash-for-android-facebook-app

我更换了机器,也更换了平台(Windows和Mac osx ML)以获得解决方案,但问题相同.它没有登录. 下面的代码为我使用debug.keystore时提供了正确的哈希密钥,就像我使用不同的密钥对应用程序进行签名时,我会得到相同的Hashkey(经过大量试验后得出的结论是,我得到的密钥是错误的)

I changed machines, I changed platforms (windows and mac osx ML) as well to get a solution but the same issue. IT DOES NOT LOG IN. The below code gives me the proper hash key when i use debug.keystore where as when i sign the application even with different keys I get the same Hashkey ( which I have come to a conclusion after lots of trials that the key i get is wrong)

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());
}

因此,使用释放键对应用程序进行签名时,我们需要采取任何其他步骤.请帮助.

So is there any kind of extra steps which we need to take when signing the application with the release key. Please HELP.

这是我解决问题的方法:

Here is what I did that solved the problem:

  1. 使用openssl-0.9.8e_WIN32代替openssl-0.9.8k_WIN32
  2. 以下我没有使用别名,或者也许我在别名中输入了一个空格,因为生成的密钥是错误的.

我改用了这个:

keytool -exportcert -alias <aliasNameUseInReleaseKeystore> -keystore <ReleasekeystoreFilePath> | openssl sha1 -binary | openssl base64

P.S.我在问题中发布的方法真的没有用.它无非是使我无休止.

P.S. The method which I have posted in my question is really useless. It did nothing more than confuse me to no end.