Проблема с подписью Android - PullRequest
3 голосов
/ 01 июня 2011

Я пытаюсь подписать apk, следуя этому руководству.

  1. Я создал папку keytools в C: \ Users \ Family \ workspace \ и папку keys в только что созданной папке keytools. Теперь у меня есть папки C: \ Users \ Family \ workspace \ keytools и C: \ Users \ Family \ workspace \ keytools \ keys.

  2. Я скопировал debug.keystore в папку ключей и скопировал keytool.exe и jli.dll в папку keytools.

  3. Я запустил cmd.exe и перешел в C: \ Users \ Family \ workspace \ keytools и запустил keytool -genkey -alias anddev.keystore -keyalg RSA -validity 20000 -keystore keys/anddev.keystore

  4. Файл anddev.keystore создается в папке ключей.

  5. Я скопировал apk для подписи в папку keytools. Я также скопировал jarsigner.exe в папку keytools.

  6. В cmd.exe я нахожусь в C: \ Users \ Family \ workspace \ keytools и пытаюсь запустить: jarsigner -verbose -keystore C:\Users\Family\workspace\keytools\keys\anddev.keystore -signedjar sampleapp_signed.apk sampleapp.apk anddev.keystore. Это дает мне эту ошибку: enter image description here Я также пытался запустить:

    jarsigner -verbose -keystore C: \ Users \ Семейство \ workspace \ keytools \ keys \ anddev.keystore -signedjar sampleapp_signed.apk sampleapp.apk C: \ Users \ Семейство \ рабочее пространство \ keytools \ keys \ anddev.keystore

Я также пытался запустить:

jarsigner -verbose -keystore C:\Users\Family\workspace\keytools\keys\anddev.keystore -signedjar C:\Users\Family\workspace\keytools\sampleapp_signed.apk C:\Users\Family\workspace\keytools\sampleapp.apk C:\Users\Family\workspace\keytools\keys\anddev.keystore

Когда я перехожу к c: \ program files \ java \ jdk1.6.0_23 \ bin и запускаю этот код, он запрашивает пароль хранилища ключей, а когда я записываю пароль хранилища ключей (123456), он выдает мне ошибку:

jarsigner: цепочка сертификатов не найдена для: c: \ users \ family \ workspace \ keytools \ keys \ anddev.keystore. c: \ users \ family \ workspace \ keytools \ keys \ anddev.keystore должен ссылаться на действительную запись ключа Keystore, содержащую закрытый ключ и соответствующую цепочку сертификатов ключей.

Когда я пишу anddev.keystore pass (= asdfgh, второй проход, запрошенный keytool в конце процесса), я получаю эту ошибку: jarsigner ошибка: java.lang.RuntimeException: загрузка хранилища ключей: хранилище ключей было подделано, или пароль был неверным. (Тем не менее, я вполне уверен, что это правильная ошибка, потому что передача не это, а 123456 ).

Я почти уверен, что все ближе, и проблема в цепи сертификатов - это проблема. Правильно? Я пропускаю шаг или что?

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

Edit: Основываясь на помощи Аида и Сааша, было очень легко подписать апк. Для тех, кто заинтересован, вот мои шаги: Для этого я создал папку MyKeys в C: \ Users \ Family \ workspace. После процесса в этой папке появилось sample.keystore и samplesigned.apk. enter image description here

Ответы [ 2 ]

3 голосов
/ 01 июня 2011

Hallo

Если вы используете Eclipse, вы можете попробовать:

Скомпилировать и подписать с Eclipse ADT

Если вы используете Eclipse с плагином ADT, вы можете использоватьМастер экспорта для экспорта подписанного .apk (и даже при необходимости создайте новое хранилище ключей).Мастер экспорта выполняет все взаимодействия с Keytool и Jarsigner для вас, что позволяет подписывать пакет с помощью графического интерфейса вместо выполнения ручных процедур для компиляции, подписи и выравнивания, как обсуждалось выше.После того, как мастер скомпилирует и подпишет ваш пакет, он также выполнит выравнивание пакета с помощью zipalign.Поскольку мастер экспорта использует и Keytool, и Jarsigner, вы должны убедиться, что они доступны на вашем компьютере, как описано выше в разделе «Основные настройки для подписи».

Чтобы создать подписанный и выровненный .apk в Eclipse:

  1. Выберите проект в проводнике пакетов и выберите «Файл»> «Экспорт».
  2. Откройте папку Android, выберите «Экспорт приложения Android» и нажмите «Далее».Теперь запустится мастер экспорта приложений Android, который проведет вас через процесс подписания вашего приложения, включая шаги по выбору личного ключа для подписи .apk (или созданию нового хранилища ключей и личного ключа).
  3. Завершите работу мастера экспорта, и ваше приложение будет скомпилировано, подписано, выровнено и готово к распространению.
3 голосов
/ 01 июня 2011

Не переживайте все эти неприятности.

Вы используете затмение? Если вы обратитесь к этому руководству.

http://developer.android.com/guide/publishing/app-signing.html

Прокрутите вниз до этого заголовка,

"Скомпилируйте и подпишите с Eclipse ADT"

У него также есть мастер для хранилища ключей.

...