2014-09-17 2 views
1

Недавно я отправился обновлять приложение, которое использует для входа в Facebook. Это работало без проблем как в отладке, так и в выпуске. Соответствующее приложение для Facebook имеет как хэши для ключа отладки, так и ключа выпуска.Android Debug Key/Keystore изменен, не найден источник нового

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

ApiException: Ключ хэш-хххй ... хххй не соответствуют ни сохраненных ключам хешей

Я прошел через шаги снова here проверить хэш-ключа отладки, и на самом деле он отличается от любого из них в Приложение FB. ОДНАКО, он также отличается от приведенного в Исключении выше.

Я «решил» это, просто экономия, что хэш от Exception в FB App, но я хотел бы понять следующее:

1) Почему хэш для ключа отладки внезапно измениться? Если я переделаю хэш, это не соответствует старому хэшу отладки, который у меня есть в моем приложении FB. (Я обновил Android SDK за пару дней до начала этого обновления, может ли это изменить отладочное хранилище/ключ?)

2) Где находится этот хеш из Исключения. Он не соответствует хешу, сгенерированному из хранилища ключей в ~/.android/debug.keystore, поэтому откуда он на самом деле происходит?

Заранее благодарим за любую помощь.

+0

Если вы уничтожили папку Android SDK, возможно, вы создали новое хранилище отладки (Android Studio и Eclipse будут генерировать один во время компиляции, если он не существует). Это объясняет, что вы видели. – PrplRugby

+0

Я не вижу, как папка могла быть уничтожена, если это произошло. Когда вы упомянули Android Studio, я вспомнил, что я установил ее несколько дней назад, но я также проверил файл debug.keystore, и он говорит, что создал и модифицировал это 1 сентября. Это хорошо, прежде чем я установил Android Studio или обновил SDK, поэтому не знаю, что там произошло. Я обнаружил, что несоответствие хэшей, о которых я упоминал, было связано с тем, что я не использовал правильный пароль для debug.keystore (по умолчанию «android»). Используя это, хэш выходит так же, как и в Исключении, тайна решена. – RobertoCuba

ответ

2

Вкратце:

1) Хэш изменилось, потому что debug.keystore был воссоздан. Точная причина его воссоздания неясна, но дело не в этом. Нижняя строка, хранилище ключей было воссоздано, ключ отладки изменен, и поэтому хэш изменился.

2) Хеш на самом деле был из этого воссозданного хранилища ключей. Проблема заключалась в том, что при создании хэша я не использовал правильный пароль хранилища ключей (по умолчанию один: «андроид»), и это испортило хэш. С правильным паролем к кешитору хеши соответствовали.

Смежные вопросы