Я пытаюсь подписать свой apk-файл. Я не могу понять, как это сделать. Я не могу найти хороших подробных инструкций. У меня очень небольшой опыт программирования, поэтому я буду благодарен за любую помощь.
Если вы используете Eclipse с плагином ADT, вы можете использовать Мастер экспорта для экспорта подписанного .apk (и даже создать новое хранилище ключей, если необходимо). Мастер экспорта выполняет все взаимодействия с Keytool и Jarsigner за вас, что позволяет вам подписывать пакет с помощью графического интерфейса пользователя вместо выполнения ручных процедур компиляции, подписи и выравнивания, как описано выше. После того, как мастер скомпилировал и подписал ваш пакет, он также выполнит выравнивание пакета с помощью zip align. Поскольку мастер экспорта использует как Keytool, так и Jarsigner, вы должны убедиться, что они доступны на вашем компьютере, как описано выше в разделе «Базовая настройка для подписи».
Чтобы создать подписанный и выровненный .apk в Eclipse:
Выберите проект в проводнике пакетов и выберите «Файл»> «Экспорт».
Откройте папку Android, выберите «Экспорт приложения Android» и нажмите «Далее».
Теперь запускается мастер экспорта Android-приложения, который проведет вас через процесс подписания вашего приложения, включая шаги по выбору закрытого ключа для подписи .apk (или созданию нового хранилища ключей и закрытого ключа).
Завершите работу мастера экспорта, и ваше приложение будет скомпилировано, подписано, выровнено и готово к распространению.
Я не понимаю, с чего начать. Я использую версию eclipse: Helios Service Release 1
chriss,
2
но, пожалуйста, прочтите ВСЕ. есть несколько советов в конце для затмения
Nanne
1
при создании ключа что мне нужно ввести для псевдонима?
Крисс
9
Вы читали инструкцию? -alias <alias_name> An alias for the key. Only the first 8 characters of the alias are used.Это просто псевдоним. Имя, если хотите. я бы предложил "firstkey" :-)
Nanne
1
Извините, я все еще не понимаю. Как мне использовать этот псевдоним. Какова его цель?
user462990
37
Вот руководство о том, как вручную подписать APK. Включает информацию о нововведениях, apk-signerпредставленных в build-tools 24.0.3(10/2016)
Автоматизированный процесс:
Воспользуйтесь этим инструментом (использует новый apksigner от Google):
Шаг 1. Создайте хранилище ключей (только один раз)
Вам нужно один раз создать хранилище ключей и использовать его для подписи вашего unsignedapk. Используйте предоставленный JDK, найденный вkeytool%JAVA_HOME%/bin/
Примечание: при использовании старого jarsignerвам необходимо выполнить zipalign ПОСЛЕ подписания. При использовании нового apksignerметода вы делаете это ДО подписания (я знаю, что сбивает с толку). Вызов zipalign перед apksigner работает нормально, потому что apksigner сохраняет выравнивание и сжатие APK (в отличие от jarsigner).
В Android 7.0 представлена схема подписи APK v2, новая схема подписи приложений, которая обеспечивает более быстрое время установки приложения и дополнительную защиту от несанкционированного изменения файлов APK ( подробнее см. Здесь и здесь ). Поэтому Google реализовал свой собственный подписчик apk под названиемapksigner (да!). Файл сценария можно найти в %ANDROID_HOME%/sdk/build-tools/24.0.3/(.jar находится в /libподпапке). Используйте это так
Для пользователей IntelliJ IDEA или Android Studio выполните следующие действия:
* Из меню Build/Generate signed APK
* Вам необходимо создать путь к хранилищу ключей. В диалоговом окне щелкните Create new. Вы создадите файл jks, содержащий ваши ключи. Выберите папку, задайте пароль. Итак, ваше хранилище ключей в порядке.
* Создайте новый ключ для вашего приложения, используя псевдоним, пароль ключа, ваше имя и т. Д.
* Нажмите "Далее".
* В диалоговом окне выберите Proguard или нет.
Не волнуйся ...! Выполните следующие действия, и вы получите подписанный файл .apk. Я тоже беспокоился об этом, но этот шаг избавил меня от разочарования. Шаги по подписанию заявки:
Экспортируйте неподписанный пакет:
Щелкните правой кнопкой мыши проект в Eclipse -> Android Tools -> Export Unsigned Application Package (например, здесь мы экспортируем наш GoogleDriveApp.apk на рабочий стол)
Подпишите приложение, используя хранилище ключей и инструмент jarsigner (выполните следующие действия):
Откройте cmd -> смените каталог, в котором существует ваш "jarsigner.exe" (например, здесь, в моей системе, он находится в "C: \ Program Files \ Java \ jdk1.6.0_17 \ bin"
Он попросит вас ввести пароль: Введите кодовую фразу для хранилища ключей: он подпишет ваш apk. Чтобы убедиться, что подписание прошло успешно, вы можете запустить:
Если вы используете eclipse с ADT, то просто скомпилировать, подписать, выровнять и подготовить файл для распространения. Что вам нужно сделать, просто выполните следующие действия.
Файл> Экспорт.
Экспорт приложения для Android
Обзор -> выберите свой проект
Далее -> Далее
Эти шаги будут скомпилированы, подписаны и выровнены по zip-архиву вашего проекта, и теперь вы готовы распространять свой проект или загружать его в магазин Google Play.
Это именно то, что мне было нужно, я использовал новый инструмент онлайн-сборки и должен был использовать мое предыдущее хранилище ключей, а не их недавно созданное. Единственное, чего мне не хватало, это ZIP ALIGNING apk, поэтому, если у кого-то есть такая же проблема, перейдите сюда stackoverflow.com/a/22682132/826194
Ларзан
5
Процесс подписания APK
Чтобы вручную подписать файл Android APK, выполните следующие три команды:
D:\ru\SignedBuilds\MySignedApp>keytool -genkey -v -keystore id.keystore
-aliasMySignedApp-keyalg RSA -keysize 2048-validity 10000Enter keystore password:Re-enter new password:Whatis your first andlast name?[Unknown]:MySignedAppSampleWhatis the name of your organizational unit?[Unknown]:InformationTechnologyWhatis the name of your organization?[Unknown]:MySignedAppDemoWhatis the name of your CityorLocality?[Unknown]:MumbaiWhatis the name of your StateorProvince?[Unknown]:MaharashtraWhatis the two-letter country code forthis unit?[Unknown]: IN
Is CN=MySignedAppDemo, OU=InformationTechnology, O=MySignedAppDemo, L=Mumbai, ST=Maharashtra, C=IN corr
ect?[no]: y
Generating2,048 bit RSA key pair andself-signed certificate (SHA256withRSA)with a validity of10,000 days
for: CN=MySignedAppDemo, OU=InformationTechnology, O=MySignedAppDemo, L=Mumbai, ST=Maharashtra,
C=IN
Enter key password for<MySignedApp>(RETURN if same as keystore password):Re-enter new password:[Storing id.keystore]
D:\ru\SignedBuilds\MySignedApp>
ШАГ 2
Sign your app with your private keystore using jarsigner
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id
CMD O / P
D:\ru\SignedBuilds\MySignedApp>jarsigner -verbose -sigalg SHA1withRSA -
digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id ---
ect
EnterPassphrasefor keystore:
adding: META-INF/MANIFEST.MF
adding: META-INF/---.SF
adding: META-INF/---.RSA
signing:AndroidManifest.xml
.....
signing: classes.dex
signing: lib/commons-codec-1.6.jar
signing: lib/armeabi/libkonyjsvm.so
jar signed.Warning:No-tsa or-tsacert is provided andthis jar isnot timestamped.Without a timestamp, users may not
be able to validate this jar after the signer certificate's expiration date (2044-02-07) or after an
y future revocation date.
D:\ru\SignedBuilds\MySignedApp>
D:\ru\SignedBuilds\MySignedApp>jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope
jar verified.Warning:This jar contains entries whose certificate chain isnot validated.This jar contains signatures that does not include a timestamp.Without a timestamp, users may not b
e able to validate this jar after the signer certificate's expiration date (2044-02-09) or after any
future revocation date.
D:\ru\SignedBuilds\MySignedApp>
ШАГ 3
Выровняйте окончательный пакет APK с помощью zipalign
Я столкнулся с этой проблемой и был решен проверкой минимальной версии sdk в манифесте. Было установлено 15 (ICS), но на моем телефоне было 10 (имбирный пряник).
Ответы:
Мануал достаточно ясный. Пожалуйста, укажите, с какой частью вы застряли после того, как проработаете ее, я бы предложил:
https://developer.android.com/studio/publish/app-signing.html
Хорошо, небольшой обзор без ссылки или затмения, так что оставьте немного места для ошибок, но он работает так
Также по ссылке:
источник
-alias <alias_name> An alias for the key. Only the first 8 characters of the alias are used.
Это просто псевдоним. Имя, если хотите. я бы предложил "firstkey" :-)Вот руководство о том, как вручную подписать APK. Включает информацию о нововведениях,
apk-signer
представленных вbuild-tools 24.0.3
(10/2016)Автоматизированный процесс:
Воспользуйтесь этим инструментом (использует новый 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
подпапке). Используйте это таки можно проверить с помощью
Официальную документацию можно найти здесь.
источник
Для пользователей IntelliJ IDEA или Android Studio выполните следующие действия:
* Из меню
Build/Generate signed APK
* Вам необходимо создать путь к хранилищу ключей. В диалоговом окне щелкните
Create new
. Вы создадите файл jks, содержащий ваши ключи. Выберите папку, задайте пароль. Итак, ваше хранилище ключей в порядке.* Создайте новый ключ для вашего приложения, используя псевдоним, пароль ключа, ваше имя и т. Д.
* Нажмите "Далее".
* В диалоговом окне выберите Proguard или нет.
Ваш подписанный APK-файл готов.
Файл справки: https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html
источник
Не волнуйся ...! Выполните следующие действия, и вы получите подписанный файл .apk. Я тоже беспокоился об этом, но этот шаг избавил меня от разочарования. Шаги по подписанию заявки:
Щелкните правой кнопкой мыши проект в Eclipse -> Android Tools -> Export Unsigned Application Package (например, здесь мы экспортируем наш GoogleDriveApp.apk на рабочий стол)
Подпишите приложение, используя хранилище ключей и инструмент jarsigner (выполните следующие действия):
Откройте cmd -> смените каталог, в котором существует ваш "jarsigner.exe" (например, здесь, в моей системе, он находится в "C: \ Program Files \ Java \ jdk1.6.0_17 \ bin"
Теперь введите команду belwo в cmd:
Он попросит вас ввести пароль: Введите кодовую фразу для хранилища ключей: он подпишет ваш apk. Чтобы убедиться, что подписание прошло успешно, вы можете запустить:
Он должен вернуться с: jar Verified.
Способ 2
Если вы используете eclipse с ADT, то просто скомпилировать, подписать, выровнять и подготовить файл для распространения. Что вам нужно сделать, просто выполните следующие действия.
Эти шаги будут скомпилированы, подписаны и выровнены по zip-архиву вашего проекта, и теперь вы готовы распространять свой проект или загружать его в магазин Google Play.
источник
Процесс подписания APK
Чтобы вручную подписать файл Android APK, выполните следующие три команды:
Создать файл хранилища ключей
Подпишите свой APK-файл, используя
jarsigner
Выровняйте подписанный APK с помощью инструмента zipalign
ШАГ 1
Generate Keystore file
Пример:
пароль хранилища ключей: yourApp @ 123 пароль ключа: yourApp @ 123
CMD O / P
ШАГ 2
Sign your app with your private keystore using jarsigner
пример
CMD O / P
Verify that your APK is signed
пример
CMD O / P
ШАГ 3
Выровняйте окончательный пакет APK с помощью zipalign
пример
CMD O / P
Verify that your APK is Aligned successfully
пример
CMD O / P
Примечание:
Команда verify предназначена только для проверки правильности сборки и подписи APK!
Ссылки
Надеюсь, это поможет всем и каждому :)
источник
Я столкнулся с этой проблемой и был решен проверкой минимальной версии sdk в манифесте. Было установлено 15 (ICS), но на моем телефоне было 10 (имбирный пряник).
источник