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

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

Ответ 1

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

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

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

  • Откройте проект в eclipse
  • Нажмите правую кнопку мыши → инструменты (инструменты для Android?) → экспортировать подписанное приложение (apk?)
  • Пройдите мастер:
  • Создайте новый магазин ключей. помните, что пароль
  • Подписывайте приложение
  • Сохраните его и т.д.

Кроме того, по ссылке:

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

Если вы используете Eclipse с плагином ADT, вы можете использовать мастер экспорта для экспорта подписанного.apk (и даже создать новое хранилище ключей, если необходимо). Мастер экспорта выполняет все взаимодействия с Keytool и Jarsigner для вас, что позволяет вам подписывать пакет с помощью графического интерфейса, а не выполнять ручные процедуры для компиляции, подписи и выравнивания, как обсуждалось выше. После того, как мастер скомпилировал и подписал ваш пакет, он также выполнит выравнивание пакетов с помощью zip-align. Поскольку Мастер экспорта использует как Keytool, так и Jarsigner, вы должны убедиться, что они доступны на вашем компьютере, как описано выше в Basic Setup for Signing.

Чтобы создать подписанный и выровненный.apk в Eclipse:

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

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

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

Ответ 2

Ниже приведено руководство о том, как вручную подписать 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 в Play Store.

zipalign -p 4 my.apk my-aligned.apk

Примечание: при использовании старого jarsigner вам необходимо выполнить zipalign ПОСЛЕ подписания. При использовании нового метода apksigner вы делаете это перед тем, как подписываться (сбивать с толку, я знаю). Вызов zipalign перед тем, как apksigner отлично работает, потому что apksigner сохраняет выравнивание и сжатие APK (в отличие от jarsigner).

Вы можете проверить выравнивание с помощью

zipalign -c 4 my-aligned.apk

Шаг 3: Подпишите и подтвердите

Использование встроенных инструментов 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

Использование встроенных инструментов 24.0.3 и более новых

Android 7.0 представляет схему подписки APK v2, новую схему подписки на приложения, которая предлагает более быстрое время установки приложений и большую защиту от несанкционированных изменений в файлах APK (см. здесь и здесь для получения дополнительной информации). Threfore Google внедрил свой собственный подписчик apk под названием apksigner (duh!) Файл script можно найти в %ANDROID_HOME%/sdk/build-tools/24.0.3/ (.jar находится в подпапке /lib). Используйте его так:

apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name

и может быть проверено с помощью

apksigner verify my-app.apk

Официальную документацию можно найти здесь.

Ответ 3

Не волнуйся...! Выполните следующие шаги, и вы получите подписанный файл .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:

jarsigner -verbose -keystore c:\users\android\debug.keystore c:\users\pir fahim\Desktops\GoogleDriveApp.apk my_keystore_alias

Он попросит вас предоставить ваш пароль: Введите пароль для ключевого слова: Он подпишет ваш apk. Чтобы убедиться, что подпись успешна, вы можете запустить:

jarsigner -verify c:\users\pir fahim\Desktops\GoogleDriveApp.apk

Он должен вернуться с: jar verified.

Метод 2

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

  • Файл > Экспорт.
  • Экспорт приложений для Android
  • Обзор → выберите ваш проект
  • Далее → Далее

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

Ответ 4

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

Ваш подписанный файл APK готов.

Файл справки: https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html

Ответ 5

Я столкнулся с этой проблемой и был решен путем проверки версии min sdk в манифесте. Он был установлен в 15 (ICS), но мой телефон работал 10 (Gingerbread)

Ответ 6

APK Signing Process


Чтобы вручную подписать Android APK файл, нам нужно ниже трех команд

1 Создать файл Keystore

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 -validity 10000

Пример _

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 < _KEYSTORE_FILE_PATH > < _UNSIGNED_APK_PATH > < _ALIAS_NAME >

Пример _

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 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 >

Пример _

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 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 _ >

Пример _

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\19.1.0>zipalign -v 4 D:\ru\ru_doc\Signed_apk\MySignedApp\28.09.16
_prod_playstore\MySignedAppS1-release-unsigned.apk D:\ru\ru_doc\Signed_apk\MySignedApp\28.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\19.1.0>

Verify that your APK is Aligned succesfully


zipalign -c -v 4 < _YOUR_APK_PATH >

Пример _

zipalign  -c -v 4 D:\ru\SignedBuilds\MySignedApp\MySignedApp.apk

CMD O/P -

D:\Android\android-sdk\build-tools\19.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\19.1.0>

Примечание:

Verify - это просто проверить, правильно ли построена и подписана APK!

Ссылка

signing-manually

androidapk-code-signing-process

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