Поделиться через


Подписывание кода для 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 с использованием параметров в предыдущем примере.

Создание сертификата

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

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

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

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

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

Параметр Описаниен
genkey Команда для генерации ключа
псевдоним Псевдоним для записи хранилища ключей
keyalg Имя алгоритма ключа
keystore Имя хранилища ключей
keysize Размер каждого ключа
validity Срок действия ключа в днях

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

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

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

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

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

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

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

Создание сертификата

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

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

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

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

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

Параметр Описаниен
genkey Генерирует ключ.
псевдоним Псевдоним для записи хранилища ключей.
keyalg Имя алгоритма ключа.
keystore Имя хранилища ключей.
keysize Размер каждого ключа.
validity Срок действия ключа в днях.

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

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

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

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

Пример:

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.

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

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

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

См. также