Андроид как подписать приложение


Подписывание пакета приложения для Android - Xamarin

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

В этой статье

В разделе Подготовка приложения к выпуску для сборки и архивации приложения для последующего подписывания и публикации использовался Диспетчер архивов.In Preparing an App for Release the Archive Manager was used to build the app and place it in an archive for signing and publishing. Из этого раздела вы узнаете, как создать удостоверение подписывания Android, как создать новый сертификат подписи для приложений Android и как опубликовать заархивированное приложение напрямую на диск.This section explains how to create an Android signing identity, create a new signing certificate for Android applications, and publish the archived app ad hoc to disk. Полученный неопубликованный APK-файл можно установить на устройства с Android, минуя магазин приложений.The resulting APK can be sideloaded into Android devices without going through an app store.

В разделе Архивирование для публикации в диалоговом окне Канал распространения предлагается два варианта распространения.In Archive for Publishing, the Distribution Channel dialog presents two choices for distribution. Выберите Прямое:Select Ad-Hoc:

В разделе Архивирование для публикации в диалоговом окне Подписать и распространить... предлагается два варианта распространения.In Archive for Publishing, the Sign and Distribute... dialog presented us with two choices for distribution. Выберите Прямое и нажмите Далее:Select Ad-Hoc and click Next:

Создание нового сертификатаCreate a New Certificate

После выбора Прямое Visual Studio откроет страницу Удостоверение подписывания диалогового окна, как это показано на следующем рисунке.After Ad-Hoc is selected, Visual Studio opens the Signing Identity page of the dialog as shown in the next screenshot. Для публикации .APK-файла его обязательно нужно подписать ключом подписи (также называемым сертификатом).To publish the .APK, it must first be signed with a signing key (also referred to as a certificate).

Можно использовать существующий сертификат, нажав кнопку Импорт, и затем продолжив с пункта Подписывание пакета APK.An existing certificate can be used by clicking the Import button and then proceeding to Sign the APK. Если у вас еще нет сертификата, нажмите кнопку + для создания нового сертификата:Otherwise, click the click the + button to create a new certificate:

Появится диалоговое окно Создание хранилища ключей Android. Создайте при помощи этого окна новый сертификат подписи, который затем можно будет использовать для подписывания приложений Android.The Create Android Key Store dialog is displayed; use this dialog to create a new signing certificate that can be used for signing Android applications. Введите необходимые сведения в этом диалоговом окне (выделено красным), как это показано на рисунке:Enter the required information (outlined in red) as shown in this dialog:

На следующем рисунке приведен пример сведений, которые необходимо ввести в этом окне.The following example illustrates the kind of information that must be provided. Нажмите Создать для создания нового сертификата:Click Create to create the new certificate:

Полученное хранилище ключей находится в следующем расположении:The resulting keystore resides in the following location:

C:\Users\Имя_пользователя\AppData\Local\Xamarin\Mono for Android\Keystore\Псевдоним\Псевдоним.keystoreC:\Users\USERNAME\AppData\Local\Xamarin\Mono for Android\Keystore\ALIAS\ALIAS.keystore

Например, при использовании chimp в качестве псевдонима вышеуказанные шаги создадут ключ подписи в следующем расположении:For example, using chimp as the alias, the above steps would create a new signing key in the following location:

C:\Users\ИМЯ_ПОЛЬЗОВАТЕЛЯ\AppData\Local\Xamarin\Mono for Android\Keystore\chimp\chimp.keystoreC:\Users\USERNAME\AppData\Local\Xamarin\Mono for Android\Keystore\chimp\chimp.keystore

Важно!

Папка AppData по умолчанию скрыта, и для доступа к ней вам, возможно, потребуется отобразить ее.The AppData folder is hidden by default and you may need to unhide it to access it.

Кроме того, обязательно сохраните резервную копию файла полученного хранилища ключей и пароль в безопасном месте (оно не указано в этом руководстве).In addition, be sure to back up the resulting keystore file and password in a safe place – it is not included in the Solution. Если вы потеряете ваш файл хранилища ключей (например, если вы сменили компьютер или переустановили Windows), то вы не сможете подписать приложение тем же сертификатом, что и предыдущие версии.If you lose your keystore file (for example, because you moved to another computer or reinstalled Windows), you will be unable to sign your app with the same certificate as previous versions.

Подробные сведения о хранилище сертификата см. в разделе Отображение MD5 и SHA1 сигнатур хранилища ключей.For more information about the keystore, see Finding your Keystore's MD5 or SHA1 Signature.

После нажатия кнопки Прямое Visual Studio для Mac откроет диалоговое окно Удостоверение подписывания Android.After clicking Ad-Hoc, Visual Studio for Mac opens the Android Signing Identity dialog as shown in the next screenshot. Для публикации .APK-файла его обязательно нужно подписать ключом подписи (также называемым сертификатом).To publish the .APK, it must first be signed it with a signing key (also referred to as a certificate). Если сертификат уже существует, то для его импорта нажмите кнопку Импорт существующего ключа и перейдите к разделу Подписывание пакета APK В ином случае нажмите кнопку Создать новый ключ для создания нового сертификата:If a certificate already exists, click the Import an Existing Key button to import it and then proceed to Sign the APK Otherwise, click the Create a New Key button to create a new certificate:

Диалоговое окно Создание нового сертификата используется для создания нового сертификата подписи, который можно использовать для подписания приложений Android.The Create New Certificate dialog is used to create a new signing certificate that can be used for signing Android applications. После ввода всех необходимых сведений нажмите кнопку OK:Click OK after entering in the necessary information:

Полученное хранилище ключей находится в следующем расположении:The resulting keystore resides in the following location:

~/Library/Developer/Xamarin/Keystore/alias/alias.keystore~/Library/Developer/Xamarin/Keystore/alias/alias.keystore

Например, вышеуказанные шаги создадут новый ключ подписи в следующем расположении:For example, the above steps might create a new signing key in the following location:

~/Library/Developer/Xamarin/Keystore/chimp/chimp.keystore~/Library/Developer/Xamarin/Keystore/chimp/chimp.keystore

Примечание

Обязательно сохраните резервную копию файла полученного хранилища ключей и пароль в безопасном месте – оно не указано в этом руководстве.Be sure to back up the resulting keystore file and password in a safe place – it is not included in the Solution. Если вы потеряете файл хранилища ключей (например, сменили компьютер или переустановили macOS), вы не сможете подписать приложение тем же сертификатом, что и предыдущие версии.If you lose your keystore file (for example, because you moved to another computer or reinstalled macOS), you will be unable to sign your app with the same certificate as previous versions.

Подробные сведения о хранилище сертификата см. в разделе Отображение MD5 и SHA1 сигнатур хранилища ключей.For more information about the keystore, see Finding your Keystore's MD5 or SHA1 Signature.

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

При нажатии кнопки Создать новое хранилище ключей (содержащее новый сертификат) будет сохранено и отобразится в списке Удостоверение подписывания, как это показано на следующем рисунке.When Create is clicked, a new key store (containing a new certificate) will be saved and listed under Signing Identity as shown in the next screenshot. Для публикации приложения в Google Play нажмите Отмена и перейдите к разделу Публикация в Google Play.To publish an app on Google Play, click Cancel and go to Publishing to Google Play. Для публикации напрямую выберите удостоверение подписывания и нажмите Сохранить как, чтобы опубликовать приложение для независимого распространения.To publish ad-hoc, select the signing identity to use for signing and click Save As to publish the app for independent distribution. Например, на приведенном ниже рисунке выбрано созданное ранее удостоверение подписывания chimp:For example, the chimp signing identity (created earlier) is selected in this screenshot:

Затем Диспетчер архивов отобразит ход выполнения операции.Next, the Archive Manager displays the publishing progress. После завершения процесса публикации для выбора места сохранения сформированного .APK-файла откроется диалоговое окно Сохранить как:When the publishing process completes, the Save As dialog opens to ask for a location where the generated .APK file is to be stored:

Перейдите в желаемое расположение для сохранения и нажмите Сохранить.Navigate to the desired location and click Save. Если неизвестен пароль ключа, откроется диалоговое окно Пароль для подписывания для ввода пароля выбранного сертификата:If the key password is unknown, the Signing Password dialog will appear to prompt for the password for the selected certificate:

После подписания файла щелкните Открытое распространение:After the signing process completes, click Open Distribution:

В результате проводник Windows откроет папку, содержащую сформированный APK-файл.This causes Windows Explorer to open the folder containing the generated APK file. На этом этапе Visual Studio завершает компиляцию приложения Xamarin.Android в APK-файл, готовый к распространению.At this point, Visual Studio has compiled the Xamarin.Android application into an APK that is ready for distribution. На рисунке ниже изображен пример готового к публикации приложения MyApp.MyApp.apk:The following screenshot displays an example of the ready-to-publish app, MyApp.MyApp.apk:

Как мы видим, новый сертификат был добавлен в хранилище ключей.As seen here, a new certificate was added to the key store. Для публикации приложения в Google Play нажмите Отмена и перейдите к разделу Публикация в Google Play.To publish an app on Google Play, click Cancel and go to Publishing to Google Play. В противоположном случае нажмите Далее для публикации приложения напрямую (для независимого распространения), как это показано в следующем примере:Otherwise click Next to publish the app ad-hoc (for independent distribution) as shown in this example:

Диалоговое окно Опубликовать напрямую перед публикацией отображает сводку по подписанному приложению.The Publish as Ad Hoc dialog provides a summary of the signed app before it is published. Проверьте правильность следующих сведений и нажмите Опубликовать.If this information is correct, click Publish.

С помощью диалогового окна Выходной APK-файл укажите путь для сохранения файла.The Output APK file dialog will save the APK to the path specified. Нажмите кнопку Сохранить.Click Save.

Затем введите пароль сертификата (пароль, который был указан в диалоговом окне Создание нового сертификата) и нажмите OK:Next, enter the password for the certificate (the password that was used in the Create New Certificate dialog) and click OK:

APK-файл подписан сертификатом и сохранен по указанному пути.The APK is signed with the certificate and saved to the specified location. Нажмите Показать в Finder:Click Reveal in Finder:

В результате откроется Finder с расположением подписанного APK-файла:This opens the finder to the location of the signed APK file:

APK-файл готов к копированию из Finder в место назначения.The APK is ready to copy from the finder and send to its final destination. Перед распространением рекомендуется установить APK-файл на устройство с Android и проверить работоспособность приложения.It's a good idea to install the APK on an Android device and try it out before distribution. Дополнительные сведения о прямой публикации APK-файлов см. в разделе Независимая публикация.See Publishing Independently for more information about publishing an ad-hoc APK.

Следующие шагиNext Steps

После подписывания пакета приложения для выпуска его необходимо опубликовать.After the application package has been signed for release, it must be published. Следующие разделы описывают несколько способов публикации приложения.The following sections describe several ways to publish an application.

Ручная подписка 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

Последнее обновление: 30.10.2015

После создания приложения, его тестирования и отладки мы можем приступить к его публикации. Суть публикации заключается в создании файла с расширением .apk, которое будет представлять приложение, и его последующее размещение в Google Play Market или на других внешних сайтах. По умолчанию в процессе отладки и создания приложения файл apk уже создается, и мы можем его найти в папке проекта по пути Название_проекта\app\build\outputs\apk. По умолчанию файл называется app-debug.apk и представляет debug-версию.

Но для полноценно публикации данного файла может оказаться недостаточно. И нам еще дополнительно надо произвести некоторую подготовку проекта к релизу. Для это следует указать в файле манифеста у элемента <manifest> установлены атрибуты android:versionCode и android:versionName. Также в файле манифеста элемент <application> не должен содержать атрибута android:debuggable

Кроме того, на этом этапе можно установить иконку для приложения, которая будет отображаться на рабочем экране гаджета, название приложения (атрибут android:label у элемента), а также можно задать лицензионное соглашение.

В файле манифеста также следует определить название пакета (атрибут package элемента <manifest>), которое будет использоваться для приложения в дальнейшем. По умолчанию при разработке в Android Studio пакеты приложений начинаются с com.example. Не стоит оставлять данное название, так как название пакета будет служить уникальным идентификатором вашего приложения. Например, ниже в моем случае названием пакета служит "com.maverics.eugene.telephonelist":

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.maverics.eugene.telephonelist"
 android:versionName="1.0"
 android:versionCode="1" >
 //.............................
 

При этом если в файлах кода java название пакета в начале файла также должно соответствовать пакету приложения.

Установка требований

На этапе подготовки к релизу также можно установить требования к API. Например, наше приложение имеет определеную минимальную версию ОС Android, поэтому мы можем установить в файле манифеста соответствующие атрибуты у элемента <uses-sdk>

  • android:minSdkVersion — минимальная версия Android

  • android:targetSdkVersion — оптимальная версия API

  • android:maxSdkVersion — максимальная версия системы

Например, пусть минимальная версия Jelly Beans 4.1.2, а оптимальная KitKat 4.4.4:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.maverics.eugene.telephonelist"
 android:versionName="1.0"
 android:versionCode="1" >
 <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="19" />
 //.............................
 

Подпись приложения

Когда все уже готово, приложение для Android должно быть подписано сертификатом, благодаря которому можно идентифицировать автора приложения. Когда мы тестируем приложение, устанавливая его через Android Studio на устройство, то оно подписывается автоматически. Но для создания релиз-версии нам надо произвести дополнительно ряд действий.

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

Во-первых, в Android Studio выберем в меню пункт Build -> Generate Signed APK. После этого нам откроется окно мастера:

Нажмем на кнопку Create new.... После этого нам откроется окно создания ключа:

Введем в поле Key store path путь к файлу сетификата, который будет создан. Если указанной папки не существует, то ее надо создать или определить существующую папку.

В поле Password/Confirm указываем пароль.

В поле Alias указываем псевдоним. Можно поставить произвольное название.

В поле First and Last Name вписываем имя и фамилию. И далее пишим подразделение, организацию, город, страну и код страны.

В конце нажимаем OK.

После этого автоматически обновится первое окошко:

Далее нажмем на кнопку Next:

Финальное окно покажет нам путь к каталогу, где будет находиться подписанное приложение apk в release-версии. Нажмем на Finish.

Теперь по указанному пути можно будет найти подписанный apk, который будет иметь название app-release.apk:

Мы можем переименовать файл, сохранив его расширение и выложить в Play Market или на любой сайт или сразу загрузить на мобильное устройство. После загрузки на телефон/планшет достоточно нажать на него, и с помощью стандартного установщика пакетов приложение будет установлено. Правда, здесь также надо учитывать, что если мы устанавливаем приложение не из Play Market, то в настройках надо разрешить установку из других источниках - Безопасность->Неизвестные источники (Разрешить установку приложений из других источников)

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



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

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

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

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


 

Как получить подпись для приложений Android?

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

Генерация ключа подписи с помощью Android Studio

Установите Android Studio на свой компьютер и запустите программу.

Вам потребуется создать ключ загрузки и хранилище ключей. Сделать это можно следующим образом:

1. В строке меню выберите “Сборка" - "Сборка" - "Создать подписанный пакет / APK”.

2. В диалоговом окне "Создать подписанный пакет или APK" выберите "Пакет приложений Android" или "APK" и нажмите "Далее".

3. Ниже поля для Путь к хранилищу ключей нажмите “Создать новый”.

4. В окне "Новое хранилище ключей" укажите следующую информацию о вашем хранилище ключей и ключе:

- Keystore

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

- Ключ

    • Псевдоним: введите идентифицирующее имя для вашего ключа.
    • Пароль: создайте и подтвердите безопасный пароль для вашего ключа. Это должно отличаться от пароля, который вы выбрали для хранилища ключей
    • Срок действия (в годах): установите период времени, в течение которого ваш ключ будет действителен. Ваш ключ должен быть действителен в течение не менее 25 лет, чтобы вы могли подписывать обновления приложения одним и тем же ключом в течение срока службы вашего приложения.
    • Сертификат: введите некоторую информацию о себе для своего сертификата. Эта информация не отображается в вашем приложении, но включена в ваш сертификат как часть APK.

7. Заполнив форму, нажмите кнопку ОК.

Теперь вы можете перейти в папку, которую указали для хранения ключей и скопировать файл *keystore.

Генерация ключа подписи с помощью Keytool

1. Загрузите и установите Java.

2. Установить каталог Java_Home.

3. Откройте командную строку (cmd.exe) как администратор, затем выполните следующую команду:
$ keytool -genkey -v -keystore [keystore_name].keystore -alias [alias_name] -keyalg RSA -keysize 2048 -validity 10000

4. Keytool запросит пароль хранилища ключей. Введите пароль и подтвердите.

5. Далее keytool запросит дополнительную информацию - имя, страну и т.д. Укажите всю требуемую информацию.

6. Затем keytool запросит пароль для псевдонима. Вернитесь, если он совпадает с паролем хранилища ключей. В противном случае введите пароль и подтвердите.

7. Готово - ваш ключ готов к копированию!

Скопированный файл ключа, вы можете добавить в Личном кабинете в качестве подписи для приложения Android.

Как подписать файл 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 

пароль хранилища ключей : [email protected] пароль : [email protected]

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

Подписание пакета приложения Android - Xamarin

  • 4 минуты на чтение

В этой статье

При подготовке приложения к выпуску Archive Manager использовался для создания приложения и помещения его в архив для подписание и публикация. В этом разделе объясняется, как создать Android удостоверение подписи, создайте новый сертификат подписи для Android приложений и опубликуйте заархивированное приложение ad hoc на диск.В полученный APK можно загрузить на устройства Android без необходимости через магазин приложений.

В архиве для публикации, Диалоговое окно Distribution Channel предлагает два варианта распространение. Выберите Ad-Hoc :

В архиве для публикации, диалоговое окно «Подписать и распространить ... » представило нам два варианта распространение. Выберите Ad-Hoc и нажмите Далее :

Создать новый сертификат

После выбора Ad-Hoc Visual Studio открывает Signing Идентификационная страница диалогового окна, как показано на следующем снимке экрана.Чтобы опубликуйте .APK, сначала он должен быть подписан ключом подписи (также называется сертификатом).

Существующий сертификат можно использовать, нажав кнопку Импортировать и затем перейти к Подпишите APK. В противном случае щелкните значок + кнопка для создания нового сертификата:

Откроется диалоговое окно «Создать хранилище ключей Android »; используйте этот диалог для создания нового сертификата подписи, который можно использовать для подписи Приложения для Android.Введите необходимую информацию (обведена красным) как показано в этом диалоге:

В следующем примере показана информация, которую необходимо предоставить. Щелкните Create , чтобы создать новый сертификат:

Результирующее хранилище ключей находится в следующем месте:

C: \ Users \ ИМЯ ПОЛЬЗОВАТЕЛЯ \ AppData \ Local \ Xamarin \ Mono для Android \ Keystore \ АЛИАС \ АЛИАС .keystore

Например, используя chimp в качестве псевдонима, вышеуказанные шаги создадут новую подпись введите ключ в следующем месте:

C: \ Users \ ИМЯ ПОЛЬЗОВАТЕЛЯ \ AppData \ Local \ Xamarin \ Mono для Android \ Keystore \ chimp \ chimp.хранилище ключей

Важно

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

Кроме того, обязательно сделайте резервную копию полученного файла хранилища ключей и пароля в безопасное место - в Решение не входит. Если вы потеряете файл хранилища ключей (например, из-за того, что вы переехали на другой компьютер или переустановил Windows), вы не сможете подпишите свое приложение тем же сертификатом, что и предыдущие версии.

Для получения дополнительной информации о хранилище ключей см. Поиск подписи MD5 или SHA1 вашего хранилища ключей.

После нажатия Ad-Hoc Visual Studio для Mac открывает Android Signing Диалоговое окно Identity , как показано на следующем снимке экрана. Чтобы опубликовать .APK, он должен быть сначала подписан ключом подписи (также называемым сертификат). Если сертификат уже существует, нажмите Импортировать Нажмите кнопку Существующий ключ , чтобы импортировать его, а затем перейдите к Подпишите APK. В противном случае нажмите Create a New Ключ , кнопка для создания нового сертификата:

Диалоговое окно Create New Certificate используется для создания новой подписи. сертификат, который можно использовать для подписи приложений Android.Нажмите ОК после ввода необходимой информации:

Результирующее хранилище ключей находится в следующем месте:

~ / Библиотека / Разработчик / Xamarin / Keystore / псевдоним / alias.keystore

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

~ / Библиотека / Разработчик / Xamarin / Keystore / chimp / chimp.keystore

Примечание

Обязательно сделайте резервную копию полученного файла хранилища ключей и пароля в безопасное место - в Решение не входит.Если вы потеряете файл хранилища ключей (например, из-за того, что вы переехали на другой компьютер или переустановил macOS), вы не сможете подпишите свое приложение тем же сертификатом, что и предыдущие версии.

Для получения дополнительной информации о хранилище ключей см. Поиск подписи MD5 или SHA1 вашего хранилища ключей.

Подписать APK

При нажатии Создать открывается новое хранилище ключей (содержащее новый сертификат) будет сохранен и указан в Идентификатор подписи , как показано на следующем скриншоте.Чтобы опубликовать приложение в Google Play, нажмите Отмените и перейдите к Публикация в Google Play. Чтобы опубликовать ad-hoc , выберите удостоверение подписи, которое будет использоваться для подписи и щелкните Сохранить как , чтобы опубликовать приложение для независимого распространения. За Например, выбран идентификатор подписи chimp (созданный ранее) на этом скриншоте:

Затем Archive Manager отображает ход публикации. когда процесс публикации завершится, откроется диалоговое окно Сохранить как с запросом для места, где генерируется.APK-файл должен быть хранится:

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

После завершения процесса подписания щелкните Открыть распространение :

Это заставляет Windows Explorer открыть папку, содержащую сгенерированный файл APK. На этом этапе Visual Studio скомпилировала Xamarin.Приложение Android в APK, готовом к распространению. На следующем снимке экрана показан пример готового к публикации приложение, MyApp.MyApp.apk :

Как видно здесь, в хранилище ключей был добавлен новый сертификат. Публиковать приложение в Google Play, нажмите Отмена и перейдите в Публикация в Google Play. В противном случае нажмите Далее , чтобы опубликовать приложение ad-hoc (для независимых распределение), как показано в этом примере:

Диалоговое окно Опубликовать как специальное содержит сводку подписанного приложения. перед публикацией.Если эта информация верна, щелкните Опубликовать .

Диалоговое окно Выходной файл APK сохранит APK по указанному пути. Нажмите Сохранить .

Далее введите пароль для сертификата (пароль, который был используется в диалоговом окне Create New Certificate ) и нажмите OK :

APK подписан сертификатом и сохранен в указанном место расположения. Щелкните Показать в Finder :

Откроется средство поиска, где находится подписанный файл APK:

APK готов к копированию из программы поиска и отправке в финальную версию. место назначения.Рекомендуется установить APK на устройство Android. и попробуйте перед распространением. Увидеть Независимая публикация для получения дополнительной информации о публикации ad-hoc APK.

Следующие шаги

После того, как пакет приложения был подписан для выпуска, он должен быть опубликовано. В следующих разделах описывается несколько способов публикации приложение.

.

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

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд
.

Android Studio: автоматическая подпись приложений

Переполнение стека
  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 в Play Store, получайте удовольствие!

.

Как подписать приложение Android как системное приложение для использования разрешения DEVICE_POWER

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
.

android - Почему я должен подписывать свой apk перед выпуском в PlayStore?

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

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