Генерация хеш-ключа для разработки facebook

Недавно я начал работать над facebook API, где я столкнулся с ситуацией, когда генерировал хеш-ключ и регистрировал его на facebook для дальнейшего использования.

Для этого я использовал следующий код

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

Все работало хорошо, так как я смог работать с facebook в своем приложении.

Но после публикации приложения в плеймаркете я обнаружил ошибку параметра Invalid_Android_key. Ключ не соответствует ни одному разрешенному ключу Настройте хэши ключей вашего приложения на странице https://developers.facebook.com/apps/ .........

Пожалуйста, дайте мне знать причину этой проблемы и как с этим справиться.


person Community    schedule 23.10.2013    source источник
comment
Вы изменили свой идентификатор пакета в com.you.name?   -  person A.S.    schedule 23.10.2013
comment
да, я сделал это. Вот почему он хорошо работал во время отладки.   -  person    schedule 23.10.2013
comment
Вы хэшировали свой ключ отладки или ключ для экспорта приложения?   -  person A.S.    schedule 23.10.2013
comment
Извините, не понял, что вы имеете в виду?   -  person    schedule 23.10.2013
comment
У вас есть два разных ключа подписи, если вы запускаете его во время разработки, вы автоматически подписываете свое приложение с помощью ключа отладки, но если вы экспортируете его и загружаете в игровой магазин, вам нужно создать новый ключ подписи. Facebook хочет, чтобы хэш подписанного ключа приложения был загружен в магазин игр, но взгляните на ответ Sanchit1234.   -  person A.S.    schedule 23.10.2013
comment
хорошо, значит ли это, что я должен зарегистрировать хеш-ключ даже для подписанного apk вместе с ключом для неподписанного apk?   -  person    schedule 23.10.2013
comment
не только для подписанных, которые вы загружаете в магазин игр   -  person A.S.    schedule 23.10.2013


Ответы (1)


У меня была такая же проблема, после создания apk хэш ключа изменился! потому что, используя этот код, вы получаете хэш отладочного хранилища ключей, но при создании apk это другой хеш, его нужно захватить из журнала после попытки ur apk на эмуляторе, затем удалить код и снова экспортировать без этого журнала, я знаю, что это хлопотно, но для меня это было проще, чем keytool...

person RaviPatidar    schedule 23.10.2013
comment
Хорошо, я попробую. - person ; 23.10.2013
comment
Если вы используете eclipse, я уверен, что он перечисляет ваш хэш при экспорте подписанного apk. - person Matthew Wesly; 23.10.2013