Підписання коду для Android
У цій статті ви дізнаєтеся про те, як підписати код для Android (APK). Вам потрібно підписати свій додаток Android , якщо ви вибрали Android як одну з платформ під час створення та створення свогоУпакування проекту.
Важливо
Якщо ви хочете підписати програму AAB для розповсюдження Google Play, перегляньте статтю Підпис додатка.
Підготовка ПК
Щоб почати, вам потрібна така інформація:
- Інсталювати Android Studio
- Встановіть OpenSSL
Створення ключів
Нотатка
Перейдіть до підписання пакета APK, якщо ви вже згенерували ключі та хеш підпису під час реєстрації програми.
Ми будемо використовувати keytool.exe (доступний після встановлення Android Studio, з папки "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") для створення сертифіката для підписання пакета програми. Цей інструмент використовується для керування сховищем (базою даних) криптографічних ключів, ланцюжками сертифікатів X.509 і довіреними сертифікатами.
Щоб створити ключ, відкрийте командний рядок і запустіть таку команду:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Параметри:
- genkey - команда для генерації ключа.
- Псевдонім- вказує на псевдонім, який буде використовуватися в майбутньому для посилання на запис сховища ключів, що містить згенеровані ключі.
- keyalg - ім’я алгоритму ключа.
- keystore - ім’я сховища ключів, яке ви використовуєте.
- keysize - розмір кожного ключа, який потрібно згенерувати.
- validity - термін дії ключа в кількості днів.
Приклад:
При підготовці Key Vault PATH_TO_KEYSTORE повинен мати розширення .pfx.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Для підготовки до підписування вручну для PATH_TO_KEYSTORE потрібно розширення .jks.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Створення гешу підпису
Нотатка
Перейдіть до підписання пакета APK, якщо ви вже згенерували ключі та хеш підпису під час реєстрації програми.
Після генерації ключа команда exportcert використовується в keytool для експорту сертифіката сховища ключів.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Параметри:
- ExportCert - зчитує зі сховища ключів сертифікат, пов’язаний з псевдонімом, і зберігає його у файлі cert_file. Якщо файл не вказано, сертифікат виводиться до stdout.
- alias - псевдонім, який використовується під час попередньої генерації ключів.
- keystore - ім’я сховища ключів, яке ви використовуєте.
- openssl - генерує ключ SHA1 для Android.
Додайте згенерований хеш підпису в URI перенаправлення під час реєстрації програми .
Перетворення шістнадцяткового значення SHA1 на геш підпису з кодуванням Base64 вручну
Ви можете побачити таку помилку, якщо хеш вашого підпису неправильно закодований або неприйнятний на порталі Azure:
«Геш підпису має бути SHA1 із кодуванням Base64».
Коли з’явиться ця помилка, спробуйте створити геш підпису за допомогою наведених нижче кроків.
- Запустіть
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
, щоб переглянути список відомостей про сертифікат у докладному режимі. - Скопіюйте значення SHA1 у розділі «Відбитки пальців сертифіката» з виводу. Переконайтеся, що ви копіюєте лише шістнадцяткове значення.
Наприклад:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Використайте будь-який доступний конвертер «Шістнадцяткового значення в кодування Base64», щоб перетворити шістнадцяткове значення скопійованого відбитка на значення з кодуванням Base64.
Приклад закодованого значення Base64:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Скопіюйте згенероване закодоване значення Base64 як хеш підпису на порталі Azure під час реєстрації програми.
Підписання пакету APK
Щоб підписати пакет APK, ми скористаємося інструментом apksigner. Цей інструмент дає змогу підписувати файли APK і гарантувати, що підпис пакета APK успішно перевірено на всіх Android платформах, які підтримують файли APK.
Пошук apksigner
Перевірте шлях SDK для Android в Android Studio.
Виберіть Розташування SDK Tool>SDK Manager>Android .
Якщо використовуєте iOS, перевірте файл apksigner з директорії версії buildTools:
Перейдіть до каталогу SDK >build-tools>buildToolsVersion> lib і перевірте файл apksigner.jar
Використання файлу apksigner
Виконайте наступну команду, щоб використовувати apksigner і підписати пакет:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Параметри:
- ks - шлях до сховища ключів.
- ks-key-alias - шлях псевдоніма ключа до APK-файлу.
Коли з’явиться запит, введіть пароль.
Більше інформації: Android Studio інструменти командного рядка: apksigner
Розповсюдження програми
Ви можете розмістити пакет у службі розповсюдження, наприклад у Центрі застосунків. Щоб розповсюджувати за допомогою Microsoft Intune, перегляньте статтю Додавання Android програми для ведення бізнесу до Microsoft Intune. Щоб дізнатися про надання додатку доступу до служби захисту додатків Intune, перегляньте статтю Надання додатку доступу до служби захисту додатків Intune.