Android / Facebook — invalid_key на устройстве, но не на эмуляторе

#android #facebook

#Android #Facebook

Вопрос:

Я получил ключ для своего приложения Android / Facebook, используя следующее:

 keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
  

Я передал это Facebook, и теперь приложение отлично работает в эмуляторе, как с установленным приложением Facebook, так и без него. Однако, когда я упаковал приложение и поместил его на свой телефон (HTC Desire), я получаю ошибку invalid_key при аутентификации. Может ли кто-нибудь пролить свет на то, почему это происходит? Нужно ли использовать другой ключ?

Комментарии:

1. Создайте собственный ключ с помощью keytool для упаковки. Как следует из названия, ключ отладки предназначен только для отладки и не связан с реальным поставщиком, компанией и так далее.

2. Вам нужно создать собственное хранилище ключей с вашим собственным ключом и использовать его для упаковки приложения.

3. Итак, используйте хранилище ключей, которое я использовал для упаковки, с той же командой, что и выше?

4. keytool -genkey -alias mydomain -keyalg RSA -keystore keystore.jks -keysize 2048 из sslshopper.com /…

5. Могу ли я не использовать тот же ключ, который я использовал? Похоже, это создает новый.

Ответ №1:

ДА… вам нужно использовать тот же ключ, который вы используете для фактической компиляции приложения (тот, который вы используете в процессе экспорта), иначе он не соответствует.

Это (маленький) PITA, вам нужно держать их оба под рукой и менять их местами, чтобы при отладке вы использовали один, а при фактической компиляции apk вы использовали другой.

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

Комментарии:

1. Итак, должен ли я использовать приведенную выше команду, но вместо хранилища ключей отладки поменять местами хранилище ключей для Android (то, которое используется в Eclipse)?

2. @Dr.Dredel вам не нужен ключ для компиляции кода, только для упаковки / экспорта.

3. @Joel, это правильно… убедитесь, что у вас правильный псевдоним, потому что генератор ключей не предупредит вас, что это неправильно, и вместо этого выдаст вам поддельный ключ!

4. @Stephan, я не уверен, что ты имеешь в виду… вам нужен ключ для упаковки apk, верно? И Facebook нужен этот ключ, чтобы убедиться, что ваше приложение является приложением, о котором оно говорит.

5. когда вы настраиваете ключ, вы настраиваете псевдоним (с его собственным паролем) … итак, у вас есть начальный пароль, а затем псевдоним с его паролем. Все это часть одного и того же хранилища ключей.