2012-06-04 3 views
48

Я, наконец, создал «окончательное» хранилище ключей для своего приложения. Поскольку мое приложение использует Карты Google, я беру на себя обязательство обновлять все макеты, чтобы использовать новый API-ключ, полученный в результате использования приложения.Настройка Eclipse для использования подписанного хранилища ключей

Теперь я полностью осведомлен о требовании экспортировать подписанный APK для выпуска , но что после этого? Мои мысли таковы, что для дальнейшей разработки и тестирования было бы проще всего, если бы я мог настроить Eclipse на использование моего конечного хранилища ключей вместо хранилища отладки ... но я не нашел способа сделать это? Это позволяет мне настраивать «альтернативный» ключ отладки, но я думаю, что это не то же самое.

Извините, если я слишком смущен, если я полностью что-то не понял.

+3

FYI, если вам нужно отладить с вашим хранилищем ключей, добавьте андроид: debuggable = "true" в ваш в вашем AndroidManifest.xml, а затем экспортируйте подписанный APK. Запустите приложение на устройстве, и вы сможете подключиться к своему процессу и получить точки останова. –

ответ

61

Я был в состоянии использовать свой Google Play релиз хранилища ключей в моей пользовательской отладки хранилище, чтобы помочь отладки в приложении функциональности покупки. То же самое, без сомнения, можно было бы применить и для отладки данных Google Maps.

Как Devunwired mentioned, есть предостережения. Но мой раствор был таким:

  1. Скопируйте ключ релиза где-нибудь.
  2. Измените пароль ключа/ключа ключа и ключевой псевдоним, следующий за the instructions here (также, следуя рекомендациям Devunwired, чтобы сделать его похожим на хранилище отладки).
  3. Изменить настройки Eclipse> Android> Build> Настройка пользовательского хранилища ключей на путь копии, сделанной на шаге 1.
  4. Готово!
+1

Хорошо работает. Только проблема была связана с тем, что мое приложение разделено на две части (приложение для библиотеки и среды). Я получал исключения java.lang.NoClassDefFoundError, пока не очистил обе части для восстановления. –

+0

Этот ответ с предоставленными ссылками был всего лишь тем, что мне нужно, чтобы получить доступ к приложению в приложении из отладочной сборки. Благодаря! –

70

Вы можете настроить пользовательское хранилище ключей для использования в своих отладочных сборках (те, которые происходят при нажатии кнопки «Выполнить ...») в Eclipse, выбрав «Настройки» -> Android -> «Сборка» и введите имя файла в «Пользовательский debug keystore ".

Однако, то есть предостережение, что он должен следовать тем же правилам, как традиционные отладки хранилища ключей, в основном:

  1. пароль к хранилищу должен быть «андроид»
  2. Он должен содержать ключ с именем «androiddebugkey»
  3. пароль, что ключи должны быть «андроид»

Таким образом, в то время как можно подписывать свои приложения в отладочном остроумия h это же хранилище ключей, которое вы экспортируете вместе с ним, требует, чтобы ваше производственное хранилище хранилища выглядело как хранилище отладки, что делает его менее безопасным, если кто-то получил товар в файле (было бы проще проверить и угадать пароли).

НТН

+0

Спасибо за разъяснение!Это означает, что, если я использую только свой последний ключ для создания пакета APK для выпуска, мне нужно адаптировать все ключи API Карт Google до создания пакета APK, это правильно? – richey

+0

Настройки BTW можно найти, перейдя в раскрывающееся меню «Окно», затем выберите «Предпочтения» – Hevski

+1

Появляется еще одно предупреждение о том, что это предпочтение является глобальным для всех проектов в Eclipse. Поэтому другие проекты также будут использовать этот новый отладочный ключ, когда вы их отлаживаете, что потенциально может ввести в заблуждение (приложения, подписанные с одним и тем же ключом, могут легче общаться друг с другом). В Android Studio кажется, что ключ отладки можно установить для каждого проекта. – ADTC

3

Мы установили пользовательское хранилище ключей использовать для нашей отладки сборки. Eclipse Перейдите в раздел «Настройки» -> Android -> Создайте и введите имя файла в «Custom debug keystore».

Важно, когда мы создаем наше хранилище ключей для таможни eclipse.:

пароль к хранилищу должен быть «андроида» Он должен содержать ключ с именем «androiddebugkey» пароль, что ключи должны быть «андроид» Таким образом, в то время как можно подписывать свои приложения в отладке с тем же хранилище, как вы экспортируете вместе с ним, это требует, чтобы производственное хранилище ключей выглядело как хранилище отладки, что делает его менее безопасным, если кто-то получил доступ к файлу (было бы проще проверить и угадать пароли).

, если мы хотим изменить пароль к хранилищу: $ Keytool -storepasswd -keystore my.keystore

, если мы хотим изменить пароль хранилища ключей псевдоним: $ Keytool -keypasswd -keystore my.keystore -alias my_name

, если мы хотим изменить хранилищу псевдоним: $ Keytool -changealias -keystore my.keystore -alias my_name -destalias my_new_name

Vkj enter image description here

0

Вы можете ввести оба отладки и ваш выпуск SHA1 для одного и того же ключа Google API с помощью Google Developers Console (console.developers.google.com).

Таким образом, у вас будет тот же ключ API для обоих, и ему больше не придется менять его в AndroidManifest.xml.

0

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

Скрипт доступен на https://github.com/IntellexApps/key2debug

Мы используем его в течение некоторого времени, так что должно быть достаточно стабильным.

ура!

4

Для того, чтобы Eclipse автоматически подписывался для вас при развертывании, вам необходимо создать хранилище ключей, которое ведет себя как хранилище отладки. Это означает, что должен быть «androiddebugkey», и оба ключа и пароль хранилища ключей должны быть «android». Поэтому я бы рекомендовал следующее:

  1. Сделать копию хранилища ключей, я скопировал мину в файл с именем iap.keystore окна
  2. Открыть терминал/команды с Keytool на пути (для меня путь D: \ NVPACK \ jdk1.6.0_45 \ bin \ keytool.EXE) или использовать FULLPATH для keystore в командах ниже
  3. Измените пароль хранилища ключей для «Android»:
    • keytool -storepasswd -keystore iap.keystore
    • Следуйте приглашение ввести старый пароль хранилища ключей
    • Последующий приглашение ввести android как новый пароль
    • Выполните запрос на подтверждение android в качестве пароля
  4. Переименовать ключ androiddebugkey (заменить Old_Key_Store_Name с текущим именем ключа в следующей команде)
    • keytool -changealias -keystore iap.keystore -alias Old_Key_Store_Name -destalias androiddebugkey
    • Следуйте приглашение ввести пароль для хранилища ключей (который теперь andorid)
    • Последующий приглашение ввести Old_Key_Store_Name пароль (это что вы ранее ключ пароль установлен)
  5. Изменение пароля для androiddebugkey
    • keytool -keypasswd -keystore iap.keystore -alias androiddebugkey
    • Следуйте приглашение ввести пароль для хранилища ключей (который теперь andorid)
    • Последующий приглашение ввести androiddebugkey пароль (это то, что вы ранее ключ пароль установлен)
    • Выполните запрос на ввод android как новый пароль ключа
    • Выполните запрос на подтверждение android как пароль ключа
  6. Теперь у вас есть хранилище ключей (с ключом), который Eclipse, с использование для автоматической подписи строителей.
  7. Загрузить затмение.
  8. Window -> Preferences -> Android -> Build
  9. Следуйте 'Пользовательские отладки хранилища ключей' Перейдите к файлу iap.keystore мы предыдущий созданный
  10. OK

Теперь при запуске/отладки проекта , он будет использовать хранилище ключей, которое мы только что создали, чтобы подписать ваш проект. Это позволит работать как IAP.

BEWARE: это удобно, но, конечно, если кто-то завладеет вашим iap.keystore они смогут подписать вещи, как вам с помощью «андроида» в качестве ключа/пароля хранилища ключей. Надеюсь, это очевидно из перечисленных выше шагов, но просто возьмите секунду, чтобы оценить, что это означает для вас (или вашей компании). Затем, основываясь на этом, решайте, приемлемы ли риски, и если вам нужно предпринять какие-либо дополнительные меры для обеспечения безопасности этого файла.

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