Facebook не работает с экспортированным / подписанным файлом APK

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

Итак, теперь это сделано, я попытался использовать журнал facebook с экспортированной и подписанной версией моего приложения. К сожалению, я не смог заставить его работать. Он никогда не будет возвращать сеанс регистрации после входа в приложение facebook или веб-страницу.

Я считаю, что это связано с тем, что ключи являются разницей между выпущенным и подписанным apk и apk, которые я использую для отладки.

Кто-нибудь знает, как решить эту проблему?

Вы верны, что ключевой хеш отличается от файла debug.keystore и ключа подписи выпуска. Чтобы исправить это, выполните следующие действия на этом веб-сайте: http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1

У этого есть хороший учебник, который исправит проблему почти мгновенно.

Суть его в следующем:

  1. Загрузите OpenSSl для Windows и извлеките .zip в простое место, например: c: \ openssl со всем содержимым zip, извлеченным из этого корня этой папки.
  2. Скопируйте файл ключа подписи в папку bin вашего JRE. Например, в моем случае: C:\Program Files\Java\jre7\bin
  3. В папке bin, в которой вы скопировали ключ подписи, нажмите SHIFT + Щелкните правой кнопкой мыши -> Открыть окно команд здесь.
  4. Запустите эту команду: keytool -exportcert -alias YOUR_ALIAS -keystore YOUR_SIGNING_KEY> c: \ openssl \ bin \ debug.txt
  5. Введите пароль для ключа подписи
  6. Теперь перейдите в папку c: \ openssl \ bin и введите следующие команды:

openssl sha1 -binary debug.txt > debug_sha.txt

А потом,

openssl base64 -in debug_sha.txt > debug_base64.txt

Готово! Файл debug_base64.txt содержит ваш хеш-ключ. Скопируйте это в консоль приложений и все настроено.

Это звучит долго, но вы действительно будете делать буквально 4 – 5 минут. 😉

Чтобы сгенерировать ключ, следуйте приведенным выше инструкциям. Главной проблемой, с которой вы можете столкнуться, будет псевдоним, поскольку он будет генерировать исключение: ошибка keytool: невозможно найти псевдоним (вероятно). Если вы подписали ключ, чтобы выпустить псевдоним извлечения приложения для этого ключа, используя:

Keytool -list -keystore

Теперь используйте этот псевдоним в keytool -exportcert -alias -keystore c: \ openssl \ bin \ debug.txt

Теперь вы можете выполнить шаги, указанные в предыдущем комментарии.