Я декодировал APK с помощью apktool (поскольку исходный исходный код был утерян), поэтому я мог исправить некоторые проблемы с XML-файлами макета. Затем я восстановил его резервную копию с помощью apktool, и когда я попытался установить его на свое устройство (используя adb: adb install appname.apk), он дал мне эту ошибку:
[INSTALL_PARSE_FAILED_NO_CERTIFICATES]
однако исходный apk был подписан хранилищем ключей (в среде Eclipse IDE), а этот нет, как я могу правильно подписать его с помощью исходного файла keystone вне Eclipse !?
android
android-install-apk
apk
Сварог
источник
источник
Ответы:
создать ключ, используя
затем подпишите apk, используя:
проверьте здесь для получения дополнительной информации
источник
jarsigner
иapksigner
? Один требует подписи, а затем zipaligning, а другой zipaligning, а затем подписиАвтоматизированный процесс:
Воспользуйтесь этим инструментом (использует новый apksigner от Google):
https://github.com/patrickfav/uber-apk-signer
Отказ от ответственности: я разработчик :)
Ручной процесс:
Шаг 1. Создайте хранилище ключей (только один раз)
Вам нужно один раз создать хранилище ключей и использовать его для подписи вашего
unsigned
apk. Используйте предоставленный JDK, найденный вkeytool
%JAVA_HOME%/bin/
Шаг 2 или 4: Zipalign
zipalign
который является инструментом, предоставляемым Android SDK, например,%ANDROID_HOME%/sdk/build-tools/24.0.2/
является обязательным шагом оптимизации, если вы хотите загрузить apk в Play Store.Примечание: при использовании старого
jarsigner
вам необходимо выполнить zipalign ПОСЛЕ подписания. При использовании новогоapksigner
метода вы делаете это ДО подписания (я знаю, что сбивает с толку). Вызов zipalign перед apksigner работает нормально, потому что apksigner сохраняет выравнивание и сжатие APK (в отличие от jarsigner).Вы можете проверить выравнивание с помощью
Шаг 3. Подпишите и подтвердите
Использование инструментов сборки 24.0.2 и старше
Используйте
jarsigner
которые, как Keytool, приходит с распределением JDK найти в%JAVA_HOME%/bin/
и использовать его так:и можно проверить с помощью
Использование инструментов сборки 24.0.3 и новее
В Android 7.0 представлена схема подписи APK v2, новая схема подписи приложений, которая обеспечивает более быстрое время установки приложения и дополнительную защиту от несанкционированного изменения файлов APK ( подробнее см. Здесь и здесь ). Поэтому Google реализовал собственный подписчик apk, который называется
apksigner
(да!). Файл сценария можно найти в%ANDROID_HOME%/sdk/build-tools/24.0.3/
(.jar находится в/lib
подпапке). Используйте это таки можно проверить с помощью
Официальную документацию можно найти здесь.
источник
[INSTALL_PARSE_FAILED_NO_CERTIFICATES]
). Проверка с помощью uber-apk-signer дала мне дополнительное пониманиеsignature VERIFY FAILED
[...]ERROR: JAR signer CERT.RSA: JAR signature META-INF/CERT.RSA uses digest algorithm 2.16.840.1.101.3.4.2.1 and signature algorithm 1.2.840.113549.1.1.1 which is not supported on API Levels [[15, 17]]
. Да, андроид 4.2.2, SHA256 там нет? идеи?Самый быстрый способ - подписаться в хранилище ключей отладки:
или в Windows:
источник
Вы используете jarsigner для подписи APK. Вам не нужно подписывать исходное хранилище ключей, просто создайте новое. Читайте подробности: http://developer.android.com/guide/publishing/app-signing.html.
источник
Для тех из вас, кто не хочет создавать файл bat для редактирования для каждого проекта или не хочет запоминать все команды, связанные с программами keytools и jarsigner, и просто хочет выполнить это за один процесс, используйте эту программу:
http://lukealderton.com/projects/programs/android-apk-signer-aligner.aspx
Я построил его, потому что мне надоел долгий процесс ввода всех файлов каждый раз.
Эта программа может сохранить вашу конфигурацию, поэтому в следующий раз, когда вы запустите ее, вам просто нужно нажать «Создать», и она обработает ее за вас. Вот и все.
Установка не требуется, он полностью переносимый и сохраняет свои конфигурации в CSV в той же папке.
источник
Обновленный ответ
Проверьте https://shatter-box.com/knowledgebase/android-apk-signing-tool-apk-signer/
Старый ответ
проверьте apk-signer хороший способ подписать ваше приложение
источник