Как подписать файл Android apk



Я пытаюсь подписать мой файл apk. Я не могу понять, как это сделать. Я не могу найти хорошие углубленные направления. У меня очень мало опыта программирования, поэтому любая помощь будет оценена.

1342   6  

6 ответов:

руководство достаточно ясно. Пожалуйста, укажите, какая часть вы застряли с после того, как вы работаете через него, я бы предложил:

https://developer.android.com/studio/publish/app-signing.html

хорошо, небольшой обзор без ссылки или затмения вокруг, так что оставьте немного места для ошибок, но он работает так

  • откройте свой проект в eclipse
  • нажмите правую кнопку мыши - > инструменты (android tools?)- >экспорт подписанного приложения (АПК?)
  • пройдите через мастера:
  • сделать новый ключ-магазин. запомните этот пароль
  • подпишите свое приложение
  • сохранить и т. д.

также, по ссылке:

скомпилировать и подписать с Eclipse ADT

Если вы используете Eclipse с ADT плагин, вы можете использовать мастер экспорта. чтобы экспортировать подписанный.АПК (и даже при необходимости создайте новое хранилище ключей). Мастер экспорта выполняет все взаимодействие с Keytool и Jarsigner для вас, что позволяет вам вместо этого подпишите пакет с помощью графического интерфейса выполнять ручные процедуры к составлять, подписывать и согласовывать, как описано выше. После того, как мастер составил и подписал ваш пакет, он также будет выполните выравнивание пакета с помощью выровнять молнию. Потому что мастер экспорта использует как keytool и jarsigner, вы следует обеспечить их доступность на вашем компьютере, как описано выше в базовой настройке для Подписание.

для создания подписанного и выровненного .APK в Затмение:

  1. выберите проект в Проводнике пакетов и выберите Файл > Экспорт.
  2. откройте папку Android, выберите Экспорт приложения Android и нажмите Следующий.

    теперь запускается мастер экспорта приложений для Android, который будет направлять вас через процесс подписания ваше приложение, включая шаги для выбор закрытого ключа, с помощью которого к подписать .apk (или создание нового хранилище ключей и закрытый ключ).

  3. завершите работу мастера экспорта и ваше приложение будет скомпилировано, подписано, выровнено и готово к работе распределение.

вот руководство о том, как вручную подписать APK. Он включает в себя информацию о новом apk-signer представил в build-tools 24.0.3(10/2016)

Автоматизированный Процесс:

используйте этот инструмент (использует новый apksigner от Google):

https://github.com/patrickfav/uber-apk-signer

отказ от ответственности: Im разработчик :)

Ручной Процесс:

Шаг 1: создание хранилища ключей (только один раз)

вам нужно создать хранилище ключей один раз и использовать его для подписи вашего 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 (хм!) Файл скрипта можно найти в %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 файл. Я тоже беспокоился об этом, но эти шаги заставляют меня отвлечься от разочарования. Шаги для подписания вашего заявления:

  1. экспорт неподписанного пакета:

щелкните правой кнопкой мыши на проекте в Eclipse - > Android Tools - > Export Unsigned Application Package (как здесь мы экспортируем наш GoogleDriveApp.apk для рабочего стола)

подписать заявление Использование хранилища ключей и инструмента jarsigner (выполните следующие действия):

откройте cmd-->изменить каталог, где ваш " jarsigner.exe " существует (как здесь в моей системе он существует в "C:\Program файлы\Java\jdk1.6. 0_17\bin"

теперь введите команду belwo в cmd:

jarsigner-verbose-keystore c:\users\android\debug.хранилище ключей c:\users\pir fahim\Desktop\GoogleDriveApp.apk my_keystore_alias

Он будет просить вас, чтобы обеспечить вашу пароль:: Введите пароль для хранилища ключей: Это будет знак вашей АПК.чтобы убедиться, что подписание прошло успешно, вы можете запустить:

утилита jarsigner -verify для c:\users\pir Фахим\рабочие столы\GoogleDriveApp.apk

Он должен вернуться с: баночка проверена.

Способ 2

Если вы используете eclipse с ADT, то просто скомпилировать, подписать, выровнять и подготовить файл для распространения.что вы должны сделать просто выполните следующие действия.

  • Файл > Экспорт.
  • экспорт приложения для android
  • обзор-->выбираем свой проект
  • Далее-->Далее

эти шаги будут скомпилированы, подписаны и zip выровнены ваш проект, и теперь вы готовы распространять свой проект или загружать в Google Play store.

для пользователей IntelliJ IDEA или Android Studio выполните следующие действия:
* Из меню Build/Generate signed APK
* Необходимо создать путь к хранилищу ключей. В диалоговом окне нажмите Create new. Вы создадите файл jks, который включает ваши ключи. Выберите папку, определите пароль. Так что ваше хранилище ключей в порядке.
* Создать новый ключ для вашего приложения, используя псевдоним, пароль, ваше имя и т. д.
* Нажимать далее.
* В диалоговом окне либо выберите должны быть или не.

подписанный 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>.keystore-alias <_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

keystore пароль: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 <_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 О / П -

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 АПК является построить и подписан правильно!

ссылка

подпись-вручную

androidapk-Code-signing-process

я надеюсь, что это поможет на e и все :)

Comments

    Ничего не найдено.