Подписывание кода для Android

В этой статье объясняется, как вручную подписать код своего приложения Android (APK) для упаковки Power Apps. Подписывать приложение для Android нужно, если вы выбрали Android как одну из платформ при создании и сборке своего проекта упаковки.

Это важно

Сведения о том, как подписать приложение AAB для распространения через Google Play, см. в разделе Подписание приложения.

Перед началом

Необходимое программное обеспечение

Прежде чем начать, установите и настройте:

Предпосылки

Тебе нужно:

  • Имя приложения для создания хэш-ключа.
  • Новейший файл APK для входа.

Замечание

Используйте расширение .jks для подписания вручную и расширение .pfx для автоматического подписания.

Генерирование ключа и хэша подписи

Замечание

Переходите сразу к разделу Подписание вручную, если вы уже сгенерировали ключи и хэш подписи при создании регистрации приложения.

Настройка переменных среды

Если вы не зададите переменные среды:

  1. Загрузите и установите Android Studio и OpenSSL.
  2. Добавьте keytool и openssl в переменную среды PATH:
    • Добавьте C:\Program Files\Android\Android Studio\jbr\bin в переменную PATH.
    • Добавьте путь к openssl.exe (например, C:\Program Files\OpenSSL-Win64\bin) к вашей переменной PATH.

Для процесса подписывания вручную

Сгенерируйте хэш-ключ подписи и сертификат

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

keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000

При появлении запроса:

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

Выполните следующую команду, чтобы сгенерировать ключ и сертификат:

keytool -exportcert -alias powerappswrap -keystore powerappswrap.jks | openssl sha1 -binary | openssl base64

При появлении запроса введите пароль хранилища ключей, созданный ранее.

Снимок экрана с командой keytool с использованием параметров из приведенного ранее примера.

Объяснение параметров:

Параметр Description
genkey Команда для генерации ключа
alias Псевдоним для входа в хранилище ключей
keyalg Имя алгоритма ключа
keystore Имя хранилища ключей
keysize Размер каждого ключа
validity Срок действия ключа в днях
exportcert Считывает сертификат из хранилища ключей
openssl Генерирует ключ SHA1 для Android

Для автоматического процесса подписания хранилища ключей

Сгенерируйте хэш-ключ подписи и сертификат

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

keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000

При появлении запроса:

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

Выполните следующую команду, чтобы сгенерировать ключ и сертификат:

keytool -exportcert -alias powerappswrap -keystore powerappswrap.pfx | openssl sha1 -binary | openssl base64

При появлении запроса введите пароль хранилища ключей, созданный ранее.

Снимок экрана с командой keytool с использованием параметров из приведенного ранее примера.

Объяснение параметров:

Параметр Description
genkey Генерирует ключ.
alias Псевдоним для записи в хранилище ключей.
keyalg Имя алгоритма ключа.
keystore Имя хранилища ключей.
keysize Размер каждого ключа.
validity Срок действия ключа в днях.
exportcert Считывает сертификат из хранилища ключей
openssl Генерирует ключ SHA1 для Android

Ручное подписывание пакета APK (не для подписывания KV)

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

Найдите инструмент apksigner

  1. Открыть Android Studio.
  2. Перейдите в раздел Инструменты>Диспетчер SDK>Расположение Android SDK, чтобы найти путь к SDK.
  3. В каталоге SDK перейдите в:
    • build-tools>[номер версии]> найдите apksigner.bat (Windows) или apksigner (Mac/Linux)
    • Или: build-tools>[номер версии]>lib> найдите apksigner.jar

Снимок экрана с информацией о местоположении apksigner.

Подпишите APK-файл

Выполните эту команду, чтобы подписать APK-файл:

apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK

Объяснение параметров:

Параметр Description
ks Путь к файлу хранилища ключей (например C:\Users\name\Desktop\powerappswrap.jks)
ks-key-alias Псевдоним, который вы использовали при создании ключа (например, powerappswrap)
PATH_TO_APK Полный путь к файлу APK (например C:\Users\name\Downloads\MyApp.apk)

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

Example:

apksigner.bat sign --ks C:\Users\name\Desktop\powerappswrap.jks --ks-key-alias powerappswrap C:\Users\name\Desktop\MyApp.apk

Проверка подписи

После подписания подтвердите подпись APK-файла с помощью:

apksigner.bat verify --verbose PATH_TO_APK

Успешная проверка подтверждает, что ваш APK-файл правильно подписан и готов к распространению.

Дополнительную информацию см. в разделе Средства командной строки Android Studio: apksigner.

Распространение приложения

После подписания приложения его можно распространять несколькими способами:

Параметры распространения

См. также