Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

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


Ручная подписка APK — WebSofter

  1. Основные положения электронной подписи приложений
  2. Способы генерации ключей подписи и хранилища ключей
  3. Разница между хранилищами *.jks и *.keystore
  4. Ручная подписка APK
  5. Подписка APK на Google Play
  6. Соображения подписи, безопасности и удаление подписки из сборки APK
  7. Автоматизация процесса подписи на этапе сборки APK
  8. Автоматизация подписи гибридных приложений Android

Тут вам покажем несколько способов инструментов, при помощи которых можно подписывать приложения Android перед публикацией их в Google App Play.

Подписка APK средствами IDE Android Studio

Вы можете использовать Android Studio для ручного создания подписанных APK, по одному за раз, или для нескольких вариантов сборки сразу. Вместо того, чтобы вручную подписывать APK, вы также можете настроить свои настройки сборки Gradle для автоматической обработки подписей во время процесса сборки. В этом разделе описывается процесс ручной подписи. Подробнее о подписании приложений как части процесса сборки см. В разделе Настройка процесса сборки для автоматической подписки APK.

Чтобы вручную подписать APK для выпуска в Android Studio, выполните следующие действия:

  1. Жмем Build > Generate Signed APK и откроется окно Generate Signed APK . (Как создать ключи подписи в Android Studio мы писали в прошлой статье)
  2. В окне Generate Signed APK Wizard выберите хранилище ключей, закрытый ключ и введите пароли для обоих. (Если вы только что создали хранилище ключей в предыдущем разделе, эти поля уже будут заполнены) Затем нажмите «Next» 
  3. В следующем окне выберите пункт назначения для подписанных APK, выберите тип сборки (если применимо), выберите продукт (ы) и нажмите «Finish»

Когда процесс завершится, вы найдете свой подписанный APK в выбранной вами папке назначения. Теперь вы можете распространять подписанный APK через торговую площадку приложения, например, в Google Play Store, или использовать выбранный вами механизм распространения подписанного приложения конечным пользователям.

Чтобы пользователи могли успешно устанавливать обновления для вашего приложения, вам нужно будет подписать APK с тем же сертификатом на протяжении всего срока действия вашего приложения.

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

Есть сгенерированные ключи подписи или создаем?

Мы уже разбирали тут, как генерировать хранилище ключей с ключом подписи. Если кратко, то вы можете подписать свое приложение из командной строки с помощью инструмента apksigner или настроить Gradle для его подписки во время сборки. В любом случае вам нужно сначала сгенерировать закрытый ключ с помощью keytool. Например командой

keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias

Примечание: keytool находится в каталоге bin/ вашего JDK. Чтобы найти ваш JDK из Android Studio, выберите « File»> «Project Structure», а затем «SDK Location», и вы увидите местоположение JDK

В этом примере команды консоль еще запросит ввести пароли для хранилища ключей и ключа подписи и запросит заполнить поля Distinguished Name для вашего ключа. Затем он генерирует хранилище ключей в виде файла с именем my-release-key.jks, сохраняя его в текущем каталоге (вы можете перемещать его по своему усмотрению). Хранилище ключей содержит один ключ, действительный в течение 10 000 дней.

Теперь вы можете создать unsigned APK, т.е. построить конфигурацию release и подписать его вручную или вместо этого настроить Gradle для автоматического подписания APK.

Подписка APK средствами командной строки Android SDK

Инструмент apksigner, доступный в версии 24.0.3 и выше для Android SDK Build Tools, позволяет вам подписывать APK и подтверждать, что подпись APK будет проверена успешно на всех версиях платформы Android, поддерживаемых этими APK. В этом подразделе представлено краткое руководство по использованию инструмента и служит ссылкой для различных параметров командной строки, которые поддерживает инструмент

Примечание 1. если вы подписываете APK с помощью apksigner и вносите дальнейшие изменения в APK, подпись APK становится недействительной. Поэтому перед подписанием APK вы должны использовать такие инструменты, как zipalign.

Примечание 2. Чтобы использовать инструмент apksigner, вы должны иметь версию 24.0.3 или выше установленных инструментов Android SDK Build Tools. Вы можете обновить этот пакет с помощью диспетчера SDK.

1). Открываем командную строку и перемещаемся в корневую директорию —из Android Studio, выбираем View > Tool Windows > Terminal. Затем вызываем команду assembleRelease:

gradlew assembleRelease

Это создает APK под именем module_name-unsigned.apk в папке project_name/module_name/build/outputs/apk/. APK будет неподписанным(unsigned) и невыровненным(unaligned), который на данный момент — он не может быть установлен до тех пор, пока не будет подписан вашим секретным ключом.

2). Align the unsigned APK using zipalign:

zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk

zipalign гарантирует, что все несжатые данные начинаются с конкретного выравнивания байтов относительно начала файла, что может уменьшить объем оперативной памяти, потребляемой приложением.

3). Подписываем APK своим личным ключом с помощью apksigner:

apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk

В этом примере выводится подписанный APK на my-app-release.apk после его подписания с закрытым ключом и сертификатом, который хранится в одном файле хранилища ключей: my-release-key.jks.

Инструмент apksigner поддерживает другие параметры подписки, включая подписание файла APK с использованием отдельного закрытого ключа и файлов сертификатов и подписку APK с использованием нескольких подписчиков. Для получения дополнительной информации см. ссылку apksigner.

4). Убеждаемся, что ваш APK подписан:

apksigner verify my-app-release.apk

Пример подписки средствами Android SDK

Если вышеописанное вызывает трудности, то давайте сделаем некоторый простой пример генерации ключа командой keytool, выполнения операции zipalign и подписи командой apksigner.

Сначала строим релиз средствами Cordova и Android SDK

cordova build --release android

Команда keytool генерации ключа в консоли:

keytool -genkey -v -keystore keys.jks -keyalg RSA -keysize 2048 -storepass passwordstore -alias eventexpress -keypass passwordkey -dname “CN=John Doe O=WebSofter C=RU” -validity 10000

Операция zipalign в консоли:

C:\Users\WebSofter\AppData\Local\Android\sdk\build-tools\26.0.2\zipalign -v -p 4 android-armv7-release-unsigned.apk android-armv7-release-unsigned-aligned.apk

Обратите внимание, что zipalign мы выполняем по прямому пути версии приложения, которая соответствует версии нашего разрабатываемого приложения.

Операция подписи apksigner:

C:\Users\WebSofter\AppData\Local\Android\sdk\build-tools\26.0.2\apksigner sign --ks C:\Users\WebSofter\Desktop\Projects\ShevcovApp\ClientApp\EventExpress\keys\keys.jks --out signed-release.apk android-armv7-release-unsigned-aligned.apk

Обратите внимание, что apksigner мы выполняем по прямому пути версии приложения и указываем путь к сгенерированному ключу, которая соответствует версии нашего разрабатываемого приложения. Далее, после нажатия Enter, консоль запросит поочередно запросить пароль от хранилища ключей и от самого ключа.

Подписка APK средствами командной строки JDK

Выше мы уже знакомились с инструментом keytool для создания хранилища ключей и самих ключей подписи в составе JDK, а в данной секции описано то, как средствами JDK подписывать этим ключом приложение и для этого есть специальный инструмент в составе JDK в той же папке, что и keytool — jarsigner.

Команда подписи с ее параметрами записывается так

jarsigner -keystore mykeys.keystore -storepass spassword -keypass kpassword1 Package1.apk mykey1

Имена параметров нам знакомы по keytool:

  • хранилище (keystore),
  • пароль (storepass) к нему
  • пароль (keypass) к ключу.
  • А последние два параметра – это имя APK-файла, который вы хотите подписать и алиас ключа из указанного хранилища, который вы хотите использовать для подписи.

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

Другие инструменты подписи

Пожалуй, сюда можно добавить такие инструменты, как:

  • apk-signer — простой инструмент командной строки для подписи apk
  • APK Signing Tool — этот инструмент с оконным интерфейсом позволяет вам подписать APK с вашим хранилищем ключей. Вы можете переопределить хранилище демо-версий и использовать свое собственное хранилище ключей перед загрузкой приложения в Google Play.
  • APK Signer — инструмент с оконным интерфейсом упрощает создание файла хранилища ключей.

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

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 .хранилище ключей-псевдоним - 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-хранилище ключей

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

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

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

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 и все :)

Как подписать APK игру или приложение на Андроид правильно

Подробности
Категория: Разработка
Опубликовано 03.03.2014 22:26

Поскольку сам гуглил вопрос "как подписать APK файл?", знаю что найти действительно рабочую и во всём понятную инструкцию не так уж и легко. Именно поэтому я решил сам написать материал о том как стоит правильно подписывать свою программу или игру на Андроид.

Как известно сейчас без цифровой подписи, ваше творение не удасться разместить в Market'е, а это уже серьёзно. Заметил очень многие молодые разработчики на Андроид, так сказать новички и вовсе забывают подписать своё приложение и пытаются с ним что-то потом делать и всё задаются вопросом почему у них не удаётся выполнить то или иное действие с их APK файлом.

Итак, не будем тянуть резину и начнём сразу с того как можно подписать ваш апк файл и чем собственно пользоваться для достижения желаемого результата.

Этот способ самый правильный из всех перечисленных, поэтому мы его и опишем в этом материале. Мы сделаем свои собственные ключи со своими данными и сертификаты и ими подпишем созданное вами приложение.

Для работы нам понадобятся: OpenSSL и SignApk.

Для начала сделаем сертификат и ключ для подписи. Установите OpenSSL. Во время установки, инсталлятор в виде выбора предложит скопировать компоненты в папку Windows, выберите в папку Bin, которая будет на месте куда вы установите весь OpenSSL. 

Теперь откройте от имени системного администратора (это очень важно!) командную строку. После чего перейдите в командной строке в папку bin, которая находится в папке, куда вы установили OpenSSL (Например, C:\OpenSSL\Bin\ или C:\Program Files\OpenSSL\Bin\). Если вы не знаете, переход к другой папке выполняется командой cd. То есть для того чтобы перейти в нужную папку вам стоит выполнить команду такого плана:

cd C:\OpenSSL\Bin\

После того как вы в папке Bin, можно приступать непосредственно к созданию сертификата и ключа.

Шаг 1 (Выполняем генерацию ключа длиною 1024 бита)

Выполните команду:

openssl genrsa -out key.pem 1024

Шаг 2 (На основе ключа создаём запрос к сертификату)

Выполните команду:

openssl req -new -key key.pem -out request.pem

 

На этом этапе вам будет необходимо ввести ваши данные, которые будут идентифицировать вас в сертификате.

Шаг 3 (Генерируем закрытый ключ по сертификату)

Выполните команду:

openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem

Шаг 4 (Выполняем генерацию открытого ключа)

Выполните команду:

openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

 

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

А теперь собственно, давайте приступим к подписи приложения. Распакуйте скачанный по ссылке выше архив с SingApk. Переместите из папки Bin, где мы создавали сертификат и ключ 2 файла: certificate.pem и key.pk8 в папку, куда вы распаковали SingApk. Windows должен отобраить диалог замены файлов - заменяйте.

Теперь для того чтобы подписать apk файл уникальной цифровой подписью, которую вы сделали сами, просто мышкой перетяните ваш apk файл на sign_APK.bat. Для того чтобы не тянуть файл с одного окна в другое (это не удобно) переместите ваш apk файл в папку с SingApk. После выполнения, в папке с SingApk появится файл apk_signed.apk, который и будет вашим подписанным приложением или игрой.

 


You have no rights to post comments

Упаковка APK приложения и подпись (компиляция apk и подпись)



Открываем Smartapktool – переходим в Распаковать/Запаковать, выбираем запаковать и ставим галочку на подписать приложение, нажимаем обзор переходим к папке с распакованным приложением и выбираем файл apktool.yml, нажимаем 'Запаковать и подписать'

после подписи ваше приложение будет находиться в папке sign рядом с программой Smartapktool.exe и иметь название sign_name.apk . Или просто 'Запаковать' тогда в (декомпилированном приложение) папке разобранного приложения будут созданы папки build и dist, в папке dist будет собранный apk (то что нам нужно), в папке build содержимое этого apk.

Если Вы сразу не подписали а решили позже ,то нужно забросить приложение в папку sign и подписать программой SmartApkTool.exe на вкладке 'Подписать'.

Статьи по теме APK:


 

Подписывание пакета APK вручную - Xamarin

  • Чтение занимает 5 мин

В этой статье

После сборки приложения для выпуска и до распространения необходимо подписать пакет APK, чтобы его можно было запускать на устройстве Android.After the application has been built for release, the APK must be signed prior to distribution so that it can be run on an Android device. Как правило, этот процесс обрабатывается в интегрированной среде разработки, однако существуют ситуации, когда пакет APK нужно подписать вручную с использованием командной строки.This process is typically handled with the IDE, however there are some situations where it is necessary to sign the APK manually, at the command line. В ходе процесса подписывания пакета APK выполняются следующие действия:The following steps are involved with signing an APK:

  1. Создание закрытого ключа – это действие должно выполняться только один раз.Create a Private Key – This step needs to be performed only once. Закрытый ключ необходим для подписывания пакета APK цифровой подписью.A private key is necessary to digitally sign the APK. После подготовки закрытого ключа это действие можно пропустить для будущих сборок выпуска.After the private key has been prepared, this step can be skipped for future release builds.

  2. Оптимизация пакета APKZipalign представляет собой процесс оптимизации, выполняемый в приложении.Zipalign the APKZipalign is an optimization process that is performed on an application. Он позволяет Android более эффективно взаимодействовать с пакетом APK во время выполнения.It enables Android to interact more efficiently with the APK at runtime. Xamarin.Android проводит проверку во время выполнения и запретит запуск приложения, если пакет APK не был оптимизирован.Xamarin.Android conducts a check at runtime, and will not allow the application to run if the APK has not been zipaligned.

  3. Подписывание пакета APK – в этом действии используется служебная программа apksigner из пакета SDK для Android и выполняется подписывание пакета APK с помощью закрытого ключа, созданного ранее.Sign the APK – This step involves using the apksigner utility from the Android SDK and signing the APK with the private key that was created in the previous step. Приложения, разработанные с применением средств сборки пакета SDK для Android, вышедших до v24.0.3, будут использовать приложение jarsigner из пакета JDK.Applications that are developed with older versions of the Android SDK build tools prior to v24.0.3 will use the jarsigner app from the JDK. Оба эти средства обсуждаются более подробно ниже.Both of these tools will be discussed in more detail below.

Важно соблюдать порядок действий, который зависит от средства, применяемого для подписывания пакета APK.The order of the steps is important and is dependent on which tool used to sign the APK. При использовании apksigner важно сначала оптимизировать приложение с помощью zipalign, а затем подписать его с помощью apksigner.When using apksigner, it is important to first zipalign the application, and then to sign it with apksigner. Если для подписывания пакета APK необходимо использовать jarsigner, то важно сначала подписать пакет APK, а затем запустить zipalign.If it is necessary to use jarsigner to sign the APK, then it is important to first sign the APK and then run zipalign.

Предварительные требованияPrerequisites

В этом руководстве будет рассматриваться использование apksigner из средств сборки пакета SDK для Android v24.0.3 или более поздней версии.This guide will focus on using apksigner from the Android SDK build tools, v24.0.3 or higher. Предполагается, что пакет APK уже собран.It assumes that an APK has already been built.

Для приложений, созданных с помощью более ранней версии средств сборки пакета SDK для Android, следует использовать средство jarsigner, как описано в разделе Подписывание пакета APK с помощью jarsigner.Applications that are built using an older version of the Android SDK Build Tools must use jarsigner as described in Sign the APK with jarsigner below.

Создание закрытого хранилища ключей (keystore)Create a Private Keystore

keystore — это база данных сертификатов безопасности, которая создается с помощью программы keytool из пакета SDK для Java.A keystore is a database of security certificates that is created by using the program keytool from the Java SDK. Хранилище ключей крайне важно для публикации приложения Xamarin.Android, так как Android не будет запускать приложения, не имеющие цифровой подписи.A keystore is critical to publishing a Xamarin.Android application, as Android will not run applications that have not been digitally signed.

Во время разработки для подписывания приложения Xamarin.Android использует хранилище ключей, что позволяет развернуть приложение непосредственно в эмуляторе на устройствах, настроенных для использования отлаживаемых приложений.During development, Xamarin.Android uses a debug keystore to sign the application, which allows the application to be deployed directly to the emulator or to devices configured to use debuggable applications. Однако это хранилище ключей не распознается как допустимое для распространения приложений.However, this keystore is not recognized as a valid keystore for the purposes of distributing applications.

Поэтому для подписывания приложений необходимо создать и использовать закрытое хранилище ключей.For this reason, a private keystore must be created and used for signing applications. Это действие выполняется только один раз, так как один и тот же ключ будет использоваться для публикации обновлений и для подписывания других приложений.This is a step that should only be performed once, as the same key will be used for publishing updates and can then be used to sign other applications.

Очень важно обеспечить безопасность этого хранилища ключей.It is important to protect this keystore. В случае его потери будет невозможно публиковать изменения для приложения в Google Play.If it is lost, then it will not be possible to publish updates to the application with Google Play. Единственное решение проблемы, связанной с потерянным хранилищем ключей, заключается в создании нового хранилища ключей, повторном подписывании пакета APK новым ключом и отправке нового приложения.The only solution to the problem caused by a lost keystore would be to create a new keystore, re-sign the APK with the new key, and then submit a new application. Старое приложение потребуется удалить из Google Play.Then the old application would have to be removed from Google Play. Аналогично, в случае нарушения безопасности нового хранилища ключей или его публичного распространения в широкую доступность могут выйти неофициальные или вредоносные версии приложения.Likewise, if this new keystore is compromised or publicly distributed, then it is possible for unofficial or malicious versions of an application to be distributed.

Создание нового хранилища ключейCreate a New Keystore

Для создания нового хранилища ключей требуется средство командной строки keytool из пакета SDK для Java.Creating a new keystore requires the command line tool keytool from the Java SDK. Ниже приведен пример использования keytool (замените <my-filename> именем файла хранилища ключей, а <key-name> — именем ключа в хранилище ключей):The following snippet is an example of how to use keytool (replace <my-filename> with the file name for the keystore and <key-name> with the name of the key within the keystore):

$ keytool -genkeypair -v -keystore <filename>.keystore -alias <key-name> -keyalg RSA \ -keysize 2048 -validity 10000 

Сначала keytool запросит пароль для хранилища ключей.The first thing that keytool will ask for is the password for the keystore. Затем он запросит определенные сведения, которые помогут в создании ключа.Then it will ask for some information to help with creating the key. Ниже приведен пример создания ключа publishingdoc, который будет храниться в файле xample.keystore:The following snippet is an example of creating a new key called publishingdoc that will be stored in the file xample.keystore:

$ keytool -genkeypair -v -keystore xample.keystore -alias publishingdoc -keyalg RSA -keysize 2048 -validity 10000 Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: Ham Chimpanze What is the name of your organizational unit? [Unknown]: NASA What is the name of your organization? [Unknown]: NASA What is the name of your City or Locality? [Unknown]: Cape Canaveral What is the name of your State or Province? [Unknown]: Florida What is the two-letter country code for this unit? [Unknown]: US Is CN=Ham Chimpanze, OU=NASA, O=NASA, L=Cape Canaveral, ST=Florida, C=US correct? [no]: yes Generating 2,048 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 10,000 days for: CN=Ham Chimpanze, OU=NASA, O=NASA, L=Cape Canaveral, ST=Florida, C=US Enter key password for <publishingdoc> (RETURN if same as keystore password): Re-enter new password: [Storing xample.keystore] 

Чтобы получить список ключей, которые хранятся в хранилище ключей, используйте keytool с параметром – list:To list the keys that are stored in a keystore, use the keytool with the – list option:

$ keytool -list -keystore xample.keystore 

Оптимизация пакета APKZipalign the APK

Перед подписыванием пакета APK с помощью apksigner сначала необходимо оптимизировать файл с помощью средства zipalign из пакета SDK для Android.Before signing an APK with apksigner, it is important to first optimize the file using the zipalign tool from the Android SDK. zipalign выравнивает ресурсы в пакете APK по 4-байтовым границам.zipalign will restructure the resources in an APK along 4-byte boundaries. Благодаря выравниванию Android может быстро загружать ресурсы из пакета APK, повышая производительность приложения и потенциально сокращая использование памяти.This alignment allows Android to quickly load the resources from the APK, increasing the performance of the application and potentially reducing memory use. Чтобы определить, прошел ли пакет APK оптимизацию, Xamarin.Android будет проводить проверку во время выполнения.Xamarin.Android will conduct a run-time check to determine if the APK has been zipaligned. Если пакет APK не оптимизирован, приложение не запустится.If the APK is not zipaligned, then the application will not run.

Следующая команда использует подписанный пакет APK, а ее результатом будет подписанный, оптимизированный пакет APK helloworld.apk, готовый к распространению.The follow command will use the signed APK and produce a signed, zipaligned APK called helloworld.apk that is ready for distribution.

$ zipalign -f -v 4 mono.samples.helloworld-unsigned.apk helloworld.apk 

Подписывание пакета APKSign the APK

Оптимизированный пакет APK необходимо подписать с использованием хранилища ключей.After zipaligning the APK, it is necessary to sign it using a keystore. Для этого предназначено средство apksigner, находящееся в каталоге build-tools версии средств сборки пакета SDK.This is done with the apksigner tool, found in the build-tools directory of the version of the SDK build tools. Например, если установлены средства сборки пакета SDK для Android v25.0.3, apksigner можно найти в следующем каталоге:For example, if the Android SDK build tools v25.0.3 is installed, then apksigner can be found in the directory:

$ ls $ANDROID_HOME/build-tools/25.0.3/apksigner /Users/tom/android-sdk-macosx/build-tools/25.0.3/apksigner* 

В следующем фрагменте предполагается, что средство apksigner доступно для переменной среды PATH.The following snippet assumes that apksigner is accessible by the PATH environment variable. Пакет APK подписывается с помощью псевдонима ключа publishingdoc, содержащегося в файле xample.keystore.It will sign an APK using the key alias publishingdoc that is contained in the file xample.keystore:

$ apksigner sign --ks xample.keystore --ks-key-alias publishingdoc mono.samples.helloworld.apk 

При выполнении этой команды при необходимости apksigner запросит пароль для хранилища ключей.When this command is run, apksigner will ask for the password to the keystore if necessary.

Дополнительные сведения об использовании apksigner см. в документации Google.See Google's documentation for more details on the use of apksigner.

Примечание

Согласно проблеме Google 62696222, средство apksigner "отсутствует" в пакете SDK для Android.According to Google issue 62696222, apksigner is "missing" from the Android SDK. Решением этой проблемы является установка средств сборки пакета SDK для Android v25.0.3 и использование этой версии apksigner.The workaround for this is to install the Android SDK build tools v25.0.3 and use that version of apksigner.

Подписывание пакета APK с помощью jarsignerSign the APK with jarsigner

Предупреждение

Сведения в этом разделе применимы, если пакет APK необходимо подписать с помощью программы jarsigner.This section only applies if it is nececssary to sign the APK with the jarsigner utility. Для подписывания пакета APK разработчикам рекомендуется использование apksigner.Developers are encouraged to use apksigner to sign the APK.

Эта методика предполагает подписывание APK-файла с помощью jarsigner из пакета SDK для Java.This technique involves signing the APK file using the jarsigner command from the Java SDK. Средство jarsigner входит в состав пакета SDK для Java.The jarsigner tool is provided by the Java SDK.

Далее показано, как подписать пакет APK с помощью jarsigner и ключа publishingdoc, содержащегося в файле хранилища ключей xample.keystore:The following shows how to sign an APK by using jarsigner and the key publishingdoc that is contained in a keystore file named xample.keystore :

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore xample.keystore mono.samples.helloworld.apk publishingdoc 

Примечание

При использовании jarsigner важно сначала подписать пакет APK, а затем использовать средство zipalign.When using jarsigner, it is important to sign the APK first, and then to use zipalign.

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

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

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

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. Завершите мастер экспорта, и ваше приложение будет скомпилировано, подписано, выровнено и готово для распространения.

Ниже приведено руководство о том, как вручную подписать 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 Signature Scheme v2, новую схему подписки на приложения, которая предлагает более быстрое время установки приложений и большую защиту от несанкционированных изменений в файлах APK (см. Здесь и здесь для получения более подробной информации). Threfore Google внедрил свой собственный подписчик apk под названием apksigner (duh!). Файл сценария можно найти в %ANDROID_HOME%/sdk/build-tools/24.0.3/ (.jar находится в %ANDROID_HOME%/sdk/build-tools/24.0.3/ /lib ). Используйте его так

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

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

 apksigner verify my-app.apk 

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

Для пользователей 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. Я тоже беспокоился об этом, но этот шаг заставил меня отказаться от разочарования. Шаги для подписания вашего приложения:

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

Щелкните правой кнопкой мыши по проекту в 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.

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

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

Пример_

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

Пример_

 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!

Справка

подписание, вручную

androidapk-подписывания кода-процесс

Надеюсь, это поможет на e и все 🙂

android - Как подписать apk через командную строку

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании
.

Как самостоятельно подписать и проверить приложение Android (apk) в Windows вручную

Согласно статье, опубликованной на веб-сайте разработчиков Android, перед запуском приложения в магазине воспроизведения его необходимо подписать и сжать с помощью zipalign.

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

  • Перед тем, как продолжить, убедитесь, что вы установили Java Development Kit и android SDK на свой компьютер, иначе вы потеряетесь в действиях.
  • Не забывайте всегда выполнять команду cmd в режиме администратора.

1. Создайте самозаверяющий сертификат.

Этот сертификат будет использоваться для подписи вашего apk позже, чтобы сгенерировать сертификат, нам нужно перейти по пути java sdk bin на ПК с консолью (cmd)

  # Обычно находится в C: \ Program Files (x86) \ Java \ jdk1.7.0_71 \ bin, но все равно проверьте местоположение на своем компьютере. # Затем в cmd введите: C: \> cd C: \ Program Files (x86) \ Java \ jdk1.7.0_71 \ bin # Вы будете расположены по пути корзины, и мы сможем использовать все java-инструменты. C: \ Program Files (x86) \ Java \ jdk1.7.0_71 \ bin>  

, когда вы находитесь в пути корзины с консолью, выполните следующую команду:

  REM Не забудьте изменить mycustomname и mycustom_alias на ваше правильное имя хранилища ключей и псевдоним (как хотите) keytool -genkey -v -keystore mycustomname.хранилище ключей -alias mycustom_alias -keyalg RSA -keysize 2048 -validity 10000 

Следуйте всем инструкциям, вам будет предложено ввести код страны, ваше местоположение, ваше имя и другую информацию, а также пароль , просто заполните эти поля. Если все прошло хорошо, вы получите файл по пути bin с указанным вами именем (в данном случае mycustomname.keystore ).

2. Подпишите файл .apk самоподписанным сертификатом.

Теперь нам нужен беззнаковый .apk , и нам нужно скопировать этот файл в путь bin jdk (просто скопируйте файл apk в jdk в C: \ Program Files (x86) \ Java \ jdk1.7.0_71 \ bin ) .

Затем выполните следующую команду:

  REM Измените имя apk, имя сертификата и псевдоним своими данными. jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mycustomname.keystore MYAPKFILE.apk mycustom_alias 

Это будет использовать предыдущий самозаверяющий сертификат, который находится в том же пути к корзине, вам нужно только указать пароль сертификата и расширение.apk будет успешно подписан.

3. Проверьте свой apk (необязательно)

Если вы хотите убедиться, что все работает нормально, проверьте свой .apk с помощью следующей команды

  jarsigner -verify -verbose -certs MYAPKFILE.apk 

4. Используйте zipalign для выравнивания вашего .apk

Теперь мы собираемся сжать подписанный файл apk. Чтобы подписать apk, нам понадобится android sdk на нашем компьютере. Затем мы переходим в папку build-tools с консолью Windows (cmd) , используя:

  # Перейдите в папку инструментов сборки Android, которая содержит файл zipalign.exe с консолью # Обычно находится в C: \ Users \ MyUser \ AppData \ Local \ Android \ android-sdk \ build-tools \ 23.0.0 # Или просто перейдите к папке, содержащей файл zipalign.exe в вашем sdk C \:> компакт-диск C: \ Users \ MyUser \ AppData \ Local \ Android \ android-sdk \ build-tools \ 23.0.0 # Теперь мы будем в каталоге инструментов сборки: C: \ Users \ MyUser \ AppData \ Local \ Android \ android-sdk \ build-tools \ 23.0.0>  

Сначала скопируйте подписанный файл .apk из шага 2 в папку инструментов сборки, где zipalign.exe находится. Затем просто выполните команду zip aling, используя:

  REM Это будет использовать имя невыровненного файла из предыдущих 2 и создаст новый с новым именем в папке инструментов сборки zipalign -v 4 MyUnalignedFile.apk MyNewUnalignedFile.apk REM Затем файл с именем MyNewUnalignedFile.apk будет расположен в C: \ Users \ MyUser \ AppData \ Local \ Android \ android-sdk \ build-tools \ 23.0.0 REM Теперь этот файл можно загрузить в магазин воспроизведения  

Теперь все должно быть настроено, чтобы загрузить ваш apk в игровой магазин, получайте удовольствие!

.

android - Как я могу подписать свое приложение с помощью «схемы подписи APK v3»?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

    .

    android - Как получить подпись для APK?

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
    .

    Как подписать Android-приложение системной подписью?

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    .

    android - как подписать APK в режиме выпуска в собственном приложении VS 2017?

    Переполнение стека
    1. Около
    2. Продукты
    3. Для команд
    1. Переполнение стека Общественные вопросы и ответы
    2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
    3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
    4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
    .

    Смотрите также