Jarsigner не распознается как внутренняя или внешняя команда

У меня есть ионное приложение, которое я хочу опубликовать в магазине Google Play. Я указал путь, но не могу подписать неподписанный apk. Я использую cmd для этого. Мой apk и мое хранилище ключей не находятся на одной карте. Может в этом проблема?

Заранее спасибо!


person Mret sezen    schedule 22.05.2017    source источник
comment
Вы создаете подписанный APK в самой студии Android. Перейти к сборке -> создать подписанный APK   -  person Dillon Burton    schedule 22.05.2017


Ответы (2)


Я решил эту проблему, добавив папку jdk bin в путь в переменных среды. это должно выглядеть так:

C:\Program Files\Java\jdk1.8.0_121\bin

Внутри этой папки bin вы можете найти все программы, такие как keytool, jarsigner и т. д.

шаги для подписания apk: обратитесь к этому ">ответить

person varun aaruru    schedule 22.05.2017
comment
У меня есть keytool в Program Files (x86). Я думаю, что это причина, почему он не работает. Позвольте мне попробовать ваше решение - person Mret sezen; 22.05.2017
comment
если ваша система 64-битная, это будут файлы программ, иначе это x86.. измените путь и попробуйте - person varun aaruru; 22.05.2017
comment
jarsigner: невозможно восстановить ключ из хранилища ключей, это ошибка, которую я получаю - person Mret sezen; 22.05.2017
comment
убедитесь, что путь к файлу .apk и файлу хранилища ключей указан правильно. и убедитесь, что пароль правильный - person varun aaruru; 22.05.2017
comment
{ путь для .apk} просто имя apk или...? - person Mret sezen; 22.05.2017
comment
лучше всего скопировать хранилище ключей и неподписанный apk в корневую папку проекта и сделать это jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore name_of_keystore.keystore unsigned_apk_file.apk alias_name - person varun aaruru; 22.05.2017
comment
если apk находится где-то внутри, например: android\build\output\apk, укажите полный путь к apk, иначе, если apk находится в корневой папке, путь не нужен - person varun aaruru; 22.05.2017
comment
Мой apk находится в другой папке, а не в хранилище ключей. C:\Users\user\amcik\platforms\android\build\outputs\apk apk находится здесь - person Mret sezen; 22.05.2017
comment
скопируйте этот apk в место, где создается хранилище ключей. Нет проблем, и введите указанную выше команду в комментариях. - person varun aaruru; 22.05.2017
comment
Это так раздражает. Я сделал то, что вы сказали, но все равно та же ошибка :( Хранилище ключей находится в корзине, а также в apk. - person Mret sezen; 22.05.2017
comment
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore android-release-unsigned.apk alias_name - person Mret sezen; 22.05.2017
comment
C:\Program Files\Java\jdk1.8.0_121\bin оба находятся здесь - person Mret sezen; 22.05.2017
comment
нет, чувак ... ты должен хранить эти файлы в папке ionic app. не в папке jdk\bin.. - person varun aaruru; 22.05.2017
comment
Я сделал это, как на скриншоте, все та же ошибка. Спасибо за ваши усилия кстати - person Mret sezen; 22.05.2017
comment
начните создавать с нуля. - person varun aaruru; 22.05.2017
comment
Там написано, что баночка подписана, с предупреждением. имя apk все еще не подписано, это нормально? - person Mret sezen; 22.05.2017
comment
теперь вам нужен инструмент zipalign для завершения процесса, и после этого вы можете увидеть там finalsigned apk - person varun aaruru; 22.05.2017
comment
zipalign -v 4 выпуск-unsigned.apk новое_имя_apk.apk - person varun aaruru; 22.05.2017
comment
Он говорит: «zipalign» не распознается как внутренняя или внешняя команда, бла-бла - person Mret sezen; 22.05.2017
comment
zip align будет доступен в инструментах android sdk\build.. укажите этот путь в переменных env.. - person varun aaruru; 22.05.2017
comment
Должен ли я поместить C:\Users\user\amcik\platforms\android\build в переменные env? - person Mret sezen; 22.05.2017
comment
это должно быть C:\Users\user\AppData\Local\Android\sdk\build-tools\25.0.2; - person varun aaruru; 22.05.2017

Подписать файл apk с помощью ionic очень просто. Перейдите на платформу -> android и сохраните файл хранилища ключей и файл release-signing.properties. Файл релиза signing.properties должен иметь вид storeFile=***.keystore keyAlias=*** storePassword=**** keyPassword=****

после этого вам нужно построить с помощью этой команды

ионная сборка android --prod --release

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

zipalign -v 4 {имя подписанного apk-файла}.apk {имя выходного файла}.apk

затем загрузите выходной apk-файл в playstore

person Surya Teja    schedule 22.05.2017
comment
Я сделал все в ионном учебнике, но мне нужно только подписать apk. - person Mret sezen; 22.05.2017