Я пытаюсь подписать apk, следуя этому руководству.
Я создал папку keytools в C: \ Users \ Family \ workspace \ и папку keys в только что созданной папке keytools. Теперь у меня есть папки C: \ Users \ Family \ workspace \ keytools и C: \ Users \ Family \ workspace \ keytools \ keys.
Я скопировал debug.keystore в папку ключей и скопировал keytool.exe и jli.dll в папку keytools.
Я запустил cmd.exe и перешел в C: \ Users \ Family \ workspace \ keytools и запустил keytool -genkey -alias anddev.keystore -keyalg RSA -validity 20000 -keystore keys/anddev.keystore
Файл anddev.keystore создается в папке ключей.
Я скопировал apk для подписи в папку keytools. Я также скопировал jarsigner.exe в папку keytools.
В 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
. Это дает мне эту ошибку:
Я также пытался запустить:
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](https://i.stack.imgur.com/lyzXU.png)