Споделяне чрез


Ръчен кодов знак за Android

В тази статия ще научите как ръчно да регистрирате Android с код за (APK). Трябва да подпишете приложението си, Android ако сте избрали Android като една от платформите , докато създавате и изграждате своя проект за опаковане.

Важно

Ако вместо това искате да подпишете приложение AAB за разпространение в Google Play, вижте Подписване на приложението си.

Подготовка на вашия настолен компютър

За да започнете, имате нужда от следната информация:

Предварителни изисквания

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

Генериране на ключове

Бележка

Пропуснете да подпишете 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 - команда за генериране на ключ.
  • псевдоним - Показва псевдонима, който ще се използва в бъдеще за препращане към записа в хранилището за ключове, съдържащ ключовете, които се генерират.
  • keyalg - име на алгоритъма на ключа.
  • Keystore - името на хранилището за ключове, което използвате.
  • Размер на ключа- Размерът на всеки ключ, който трябва да бъде генериран.
  • валидност - валидност на ключа в брой дни.

Пример:

  • Ако подготвяте 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

Екранна снимка с команда keytool, използваща параметрите в горния пример.

Генериране на хеш подпис

Бележка

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

След генериране на ключа, командата exportcert се използва в keytool за експортиране на сертификата за съхранение на ключове.

keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64

Параметри:

  • ExportCert - чете от хранилището на ключове сертификата, свързан с псевдонима, и го съхранява във файла cert_file. Когато не е указан файл, сертификатът се извежда на stdout.
  • псевдоним - псевдонимът, използван при генериране на ключове по-рано.
  • Keystore - името на хранилището за ключове, което използвате.
  • openssl - генерира SHA1 ключ за Android.

Добавете генерирания хеш на подписа в URI адреса за пренасочване, докато регистрирате приложението.

Преобразувайте ръчно SHA1 hex в Base64-кодиран хеш на подписа

Може да видите следната грешка, ако хешът на подписа ви не е правилно кодиран или неприемлив в портала на Azure:

„Хешът на подписа трябва да бъде кодиран с base64 SHA1.“

Когато се появи тази грешка, опитайте вместо това да генерирате хеша на подписа, като използвате следните стъпки:

  1. Стартирайте keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE , за да изброите информацията за сертификата в детайлен режим.
  2. Копирайте стойността на SHA1 в секцията Отпечатъци на сертификата от изхода. Уверете се, че копирате само шестнадесетичната стойност.
    Например: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  3. Използвайте всеки наличен конвертор „Шестнадесетичен към Base64“, за да преобразувате шестнадесетичната стойност на копирания пръстов отпечатък на сертификата в кодирана стойност на Base64.
    Пример за кодираната стойност на Base64: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  4. Копирайте генерираната стойност, кодирана в Base64, като хеш на подписа в портала на Azure, докато регистрирате приложението.

Подпишете APK пакета

За да подпишем APK пакета, ще използваме инструмента apksigner. Този инструмент ви позволява да подписвате APK файлове и да гарантирате, че подписът на APK пакета е проверен успешно на всички Android платформи, поддържани от APK файловете.

Намерете своя apksigner

  1. Проверете пътя Android SDK в Android Studio.

  2. Изберете Местоположение на SDK на диспечера>на инструменти>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

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

Можете да хоствате пакета в услуга за разпространение, като например App Center. За да разпространявате с помощта на Microsoft Intune, вижте Добавяне на Android бизнес приложение към Microsoft Intune. За да научите как да дадете достъп на приложение до услугата за защита на приложения на Intune, вижте Предоставяне на достъп на вашето приложение до услугата за защита на приложения на Intune.

Вижте също