Android Facebook SDK: генерировать ключ ключа релиза

Я создаю приложение, в котором пользователи могут входить в систему с помощью Facebook.

Я создал хэш-ключи, как показано ниже:

try { PackageInfo info = getPackageManager().getPackageInfo( "com.app.package", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); Log.d("KeyHash", "KeyHash:"+ Base64.encodeToString(md.digest(), Base64.DEFAULT)); Toast.makeText(getApplicationContext(), Base64.encodeToString(md.digest(), Base64.DEFAULT), Toast.LENGTH_LONG).show(); } } catch (NameNotFoundException e) { } catch (NoSuchAlgorithmException e) { } 

В режиме отладки все работает хорошо.

Когда я экспортирую проект для выпуска, он дает эту ошибку:

 "Invalid key hash. The key hash ****************** does not match any stored key hashes" 

Я вставляю ключ, напечатанный на панели инструментов Facebook Developer, но приложение все еще дает мне эту ошибку.

Полный пакет моей активности – « com.app.package.views », и я попытался использовать этот пакет (как имя пакета Google Play) на панели управления, но ничего не изменилось.

Как я могу это решить? Как я могу сгенерировать хеш-ключ правого релиза?

Solutions Collecting From Web of "Android Facebook SDK: генерировать ключ ключа релиза"

Вы выполнили шаги, которые facebook предусматривает создание приложения для входа в систему?

Вам понадобится «Production keyhash», который начинается с вашего хранилища ключей выпуска:

Из командной строки:

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

И добавьте этот ключ в параметры страницы на facebook.

Дополнительная информация: https://developers.facebook.com/docs/android/getting-started/

Я нахожу решение. Для MAC

Используйте это, чтобы получить YOUR_RELEASE_KEY_ALIAS:

 keytool -list -keystore /Users/***/Documents/keystore/***.jks 

И этот, чтобы получить ваш релиз keyhash:

 keytool -exportcert -alias YOUR_RELEASE_KEY_ALIAS -keystore /Users/***/Documents/keystore/***.jks | openssl sha1 -binary | openssl base64 

Меня устраивает.

Простейшее решение.

1) Подпишите свой Apk.

2) Подключите устройство к машине и установите подписанный apk на реальном устройстве.

3) Когда нажата функция facebook, вы получите сообщение об ошибке «Недопустимый хэш ключа». Хэш хэша «xxx» не соответствует ни одному сохраненному ключу … »на вашем логарифме.

4) Скопируйте ключ Hash и нажмите этот ключ для разработчиков.

Нам нужно заменить слово «openssl» на путь одного файла внутри структуры openssl.

Итак, моя команда CMD:

 C:\Program Files\Java\jre1.8.0_45\bin>keytool -exportcert -alias Informatheus -keystore C:\Users\Atendimento\Dropbox\AndroidKeystore\Keystore | C:\Users\Atendimento\Desktop\openssl\bin\openssl sha1 -binary | C:\Users\Atendimento\Desktop\openssl\bin\openssl base64 

Это сработало.

Facebook SDK использует два разных ключа, один из которых – это отладочный ключ, который вы можете использовать на этапе разработки, а другой – это ключ Release, который используется после создания подписанного пакета приложений. Вот ссылка о том, как создавать ключи отладки и выпуска.

Developer.Facebook

Также проверьте это сообщение SO.

 keytool -exportcert -alias aliasName -keystore C:\my_release_keystroke_info.jks | openssl sha1 -binary | openssl base64