Как подписать файл Android apk
Я пытаюсь подписать файл apk. Я не могу понять, как это сделать. Я не могу найти хорошее направление. У меня очень мало опыта программирования, поэтому любая помощь будет оценена по достоинству.
6 ответов
руководство достаточно ясно. Пожалуйста, укажите, какая часть вы застряли с после того, как вы работаете через него, я бы предложил:
https://developer.android.com/studio/publish/app-signing.html
хорошо, небольшой обзор без ссылки или затмения вокруг, поэтому оставьте место для ошибок, но он работает так
- откройте свой проект в eclipse
- нажмите правой кнопкой мыши - > инструменты (Android tools?) - >"экспорт" подписали приложение (apk?)
- пройти мастер:
- сделайте новый ключ-магазин. запомните этот пароль
- подпишите приложение
- сохраните его и т. д.
также, по ссылке:
скомпилировать и подписать с Eclipse ADT
Если вы используете Eclipse с ADT плагин, вы можете использовать мастер экспорта. для экспорта подписанного.АПК (и даже при необходимости создайте новое хранилище ключей). Мастер экспорта выполняет все взаимодействие с Keytool и Jarsigner для вас, что позволяет вам вместо этого подпишите пакет с помощью GUI выполнения ручных процедур составлять, подписывать и согласовывать, как описано выше. После компиляции мастера и подписал ваш пакет, он также будет выполните выравнивание пакета с выровнять молнию. Потому что мастер экспорта использует и Keytool и Jarsigner, вы следует обеспечить их доступность на вашем компьютере, как описано выше в базовой настройке для Подписание.
для создания подписанного и выровненного .apk в Затмение:
- выберите проект в Проводнике пакетов и выберите Файл > Экспорт.
откройте папку Android, выберите Экспорт приложения Android и нажмите Следующий.
теперь запускается мастер экспорта приложений для Android, который будет направлять вас через процесс подписания ваше приложение, включая шаги для выбор закрытого ключа, с помощью которого к подпишите .apk (или создание нового хранилище ключей и закрытый ключ).
- завершите мастер экспорта, и ваше приложение будет скомпилировано, подписано, согласовано и готово к распределение.
вот руководство о том, как вручную подписать APK. Он включает в себя информацию о новом apk-signer
представил в build-tools 24.0.3
(10/2016)
Автоматизированный Процесс:
используйте этот инструмент (использует новый apksigner от Google):
https://github.com/patrickfav/uber-apk-signer
отказ от ответственности: Im разработчик:)
Ручной Процесс:
Шаг 1: создание хранилища ключей (только один раз)
нужно еще создать keystore и использовать его для подписи unsigned
apk.
Используйте keytool
предоставлено JDK нашли в %JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
Шаг 2 или 4: Zipalign
zipalign
который является инструментом, предоставляемым Android SDK нашли, например,%ANDROID_HOME%/sdk/build-tools/24.0.2/
является обязательным шагом оптимизации, если вы хотите загрузить apk в игру Магазин.
zipalign -p 4 my.apk my-aligned.apk
Примечание: при использовании старых jarsigner
вам нужно zipalign после подписание. При использовании нового apksigner
способ вы делаете это до подписание (запутанно, я знаю). вызов zipalign перед apksigner отлично работает потому что apksigner сохраняет выравнивание и сжатие APK (в отличие от jarsigner).
вы можете проверка выравнивание с
zipalign -c 4 my-aligned.apk
Шаг 3: Знак & Проверить
использование build-tools 24.0.2 и старше
использовать jarsigner
который, как и keytool,поставляется с дистрибутивом JDK нашли в %JAVA_HOME%/bin/
и используйте его так:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name
и может быть проверена с
jarsigner -verify -verbose my_application.apk
использование build-tools 24.0.3 и новее
Android 7.0 представляет apk Signature Scheme v2, новую схему подписания Приложения, которая предлагает более быстрое время установки приложения и большую защиту против несанкционированных изменений файлов APK (см. здесь и здесь для более подробной информации). Threfore Google реализовал их собственный apk signer называется apksigner
(duh!)
Файл сценария можно найти в %ANDROID_HOME%/sdk/build-tools/24.0.3/
(the .jar находится в /lib
папку). Используйте его так
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
и может быть проверена с
apksigner verify my-app.apk
Не волнуйтесь...! Выполните следующие действия, и вы получите свою подпись .файл apk. Я также беспокоился об этом, но эти шаги заставляют меня отказаться от разочарования. Шаги, чтобы подписать заявление:
- экспорт неподписанного пакета:
щелкните правой кнопкой мыши на проекте в Eclipse -> Android Tools - > экспорт неподписанного пакета приложений (как здесь мы экспортируем наш GoogleDriveApp.apk на рабочий стол)
подписать заявление Использование хранилища ключей и инструмента jarsigner (выполните следующие действия):
открыть cmd-->изменить каталог, где ваш " jarsigner.exe " exist (как здесь, в моей системе, он существует в "C:\Program файлы\Java\jdk1.6.0_17\bin"
теперь введите команду belwo в cmd:
jarsigner-подробный-хранилище ключей c:\users\android\debug - ... хранилище c:\users\pir fahim\настольные компьютеры\GoogleDriveApp.apk my_keystore_alias
он попросит вас предоставить пароль:: Введите пароль для keystore: Он подпишет ваш apk.чтобы убедиться, что подписание успешно, вы можете запустить:
jarsigner-проверить c:\users\pir fahim\настольные компьютеры\GoogleDriveApp.apk
Он должен вернуться с: jar проверено.
Способ 2
Если вы используете eclipse с ADT, то просто скомпилировать, подписать, выровнять и подготовить файл для распространения.что ты должен сделать? просто выполните следующие действия.
- Файл > Экспорт.
- экспорт приложения для android
- обзор-->выбираем свой проект
- Далее-->Далее
эти шаги будут скомпилированы, подписаны и zip выровняли ваш проект, и теперь вы готовы распространять свой проект или загружать в Google Play store.
для пользователей IntelliJ IDEA или Android Studio выполните следующие действия:
* Из меню Build/Generate signed APK
* Необходимо создать путь к хранилищу ключей. В диалоговом окне нажмите Create new
. Вы создадите файл jks, который включает ваши ключи. Выберите папку, определите пароль. Так что ваш keystore ОК.
* Создать новый ключ для вашего приложения, используя псевдоним, пароль, ваше имя и т. д.
* Нажимать далее.
* В диалоговом окне выберите должны быть или не.
ваш подписанный файл APK готов.
файл справки:https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html
Я столкнулся с этой проблемой и был решен путем проверки версии min sdk в манифесте. Он был установлен на 15 (ICS), но мой телефон работал 10(Gingerbread)
APK Signing Process
чтобы вручную подписать Android APK файл нам нужно ниже трех команд
1 создать файл хранилища ключей
keytool -genkey -v -keystore <_YOUR_KEYSTORE_NAME>.keystore -alias <_ALIAS_NAME> -keyalg RSA -keysize 2048 -validity 10000
2 подпишите файл APK с помощью Jarsigner
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <_KEYSTORE_FILE_PATH> <_UNSIGNED_APK_PATH> <_ALIAS_NAME>
3 выровнять подписанный APK с помощью инструмента zipalign
zipalign -v 4 <_jarsigned_APK_FILE_PATH> <_ZIPALIGNED_SIGNED_APK_FILE_PATH>
#STEP-1#
Generate Keystore file
F:\ru\ru_doc\Signed_apk\MySignedApp > keytool - genkey-v-keystore <_your_keystore_name>.хранилище ключей-псевдоним <_alias_name> - keyalg RSA - keysize 2048-срок действия 10000
Example_
F:\ru\ru_doc\Signed_apk\MySignedApp>keytool -genkey -v -keystore id.keystore -alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000
пароль хранилища ключей : yourApp@123 пароль : yourApp@123
CMD O / P-
D:\ru\SignedBuilds\MySignedApp>keytool -genkey -v -keystore id.keystore
-alias MySignedApp -keyalg RSA -keysize 2048 -validity 10000
Enter keystore password:
Re-enter new password:
What is your first and last name?
[Unknown]: MySignedApp Sample
What is the name of your organizational unit?
[Unknown]: Information Technology
What is the name of your organization?
[Unknown]: MySignedApp Demo
What is the name of your City or Locality?
[Unknown]: Mumbai
What is the name of your State or Province?
[Unknown]: Maharashtra
What is the two-letter country code for this unit?
[Unknown]: IN
Is CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra, C=IN corr
ect?
[no]: y
Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,
000 days
for: CN=MySignedApp Demo, OU=Information Technology, O=MySignedApp Demo, L=Mumbai, ST=Maharashtra,
C=IN
Enter key password for <MySignedApp>
(RETURN if same as keystore password):
Re-enter new password:
They don't match. Try again
Enter key password for <MySignedApp>
(RETURN if same as keystore password):
Re-enter new password:
[Storing id.keystore]
D:\ru\SignedBuilds\MySignedApp>
#STEP-2#
Sign your app with your private keystore using jarsigner
jarsigner-verbose-sigalg SHA1withRSA-digestalg SHA1-хранилище ключей <_keystore_file_path><_unsigned_apk_path><_alias_name>
Example_
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
Enter Passphrase for 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 and this jar is not 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>
Verify that your APK is signed
jarsigner-verify-verbose-certs <_jarsigned_apk_file_path>
Example_
jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk
CMD O / P-
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 is not 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>
#STEP 3#
выровнять окончательный пакет APK с помощью zipalign
zipalign-v 4 <_jarsigned_apk_file_path><_zipaligned_signed_apk_file_path_with_name_ofsignedapk_>
Example_
zipalign -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk
CMD O / P-
D:\Android\android-sdk\build-tools.1.0>zipalign -v 4 D:\ru\ru_doc\Signed_apk\MySignedApp.09.16
_prod_playstore\MySignedAppS1-release-unsigned.apk D:\ru\ru_doc\Signed_apk\MySignedApp.09.16_prod
_playstore\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...
4528613 classes.dex (OK - compressed)
5656594 lib/commons-codec-1.6.jar (OK - compressed)
5841869 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful
D:\Android\android-sdk\build-tools.1.0>
Verify that your APK is Aligned succesfully
zipalign-c-v 4 <_your_apk_path>
Example_
zipalign -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk
CMD O/P -
D:\Android\android-sdk\build-tools.1.0>zipalign -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk
Verifying alignment of D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk (
4)...
4453984 res/drawable/zoomout.png (OK)
4454772 res/layout/tabview.xml (OK - compressed)
4455243 res/layout/wheel_item.xml (OK - compressed)
4455608 resources.arsc (OK)
4470161 classes.dex (OK - compressed)
5597923 lib/commons-codec-1.6.jar (OK - compressed)
5783198 lib/armeabi/libkonyjsvm.so (OK - compressed)
Verification succesful
D:\Android\android-sdk\build-tools.1.0>
Примечание:
Verify
команды просто проверить whwther APK построен и подписан правильно!
ссылка
androidapk-код-подписание-процесс
надеюсь, это поможет на e и все :)