Знак за код за 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"), за да създадете сертификат за подписване на пакета на приложението. Keytool се използва за управление на хранилище за ключове (база данни) от криптографски ключове, вериги от сертификати X.509 и надеждни сертификати.
За да генерирате ключ, отворете командния ред и изпълнете следната команда:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Параметри:
- genkey - команда за генериране на ключ.
- alias - показва псевдонима, който ще се използва в бъдеще, за да се отнася до записа в хранилището на ключове, съдържащ ключовете, които се генерират.
- 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 hex в Base64-кодиран хеш на подписа
Може да видите следната грешка, ако хеширането на подписа ви не е правилно кодирано или неприемливо в портала на Azure:
„Хешът на подписа трябва да бъде кодиран с base64 SHA1.“
Когато се появи тази грешка, опитайте вместо това да генерирате хеша на подписа, като използвате следните стъпки:
- Изпълнете
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
Проверете пътя Android SDK в Android Studio.
Изберете Инструмент > SDK мениджър > Местоположение на Android SDK.
Ако използвате iOS, проверете файла apksigner от директорията buildTools Version :
Отидете на SDK директория > инструменти за изграждане > 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
Разпространение на приложението
Можете да хоствате пакета в услуга за разпространение, като например App Center. За да разпространявате с помощта на Microsoft Intune, вижте Добавяне на Android line-of-business приложение към Microsoft Intune. За да научите относно предоставянето на достъп на приложение до услугата за защита на приложения Intune, вижте Дайте на приложението си достъп до услугата за защита на приложения Intune.
Вижте също
Обратна връзка
https://aka.ms/ContentUserFeedback.
Очаквайте скоро: През цялата 2024 г. постепенно ще отстраняваме проблемите в GitHub като механизъм за обратна връзка за съдържание и ще го заменим с нова система за обратна връзка. За повече информация вижте:Подаване и преглед на обратна връзка за