Ruční podepsání kódu pro Android
V tomto článku se dozvíte, jak ručně podepsat kód pro Android (APK). Pokud jste jako jednu z možností platforem vybrali Android, budete muset svou aplikaci pro Android podepsat při vytváření a sestavování projektu zabalení.
Důležité
Pokud byste místo toho chtěli podepsat aplikaci AAB pro distribuci na Google Play, přečtěte si článek Podepisování aplikace.
Příprava počítače
Abyste mohli začít, potřebujete následující informace:
- Instalace aplikace Android Studio
- Nainstalujte OpenSSL
- Nainstalujte nástroj apksigner
Předpoklady
- Název aplikace pro vytvoření klíče hash.
- Nejnovější soubor APK pro proces podepsání.
Generování klíčů
Poznámka:
Přeskočte na podpis balíčku APK, pokud jste již vygenerovali klíče a hash podpisu při vytváření registrace aplikace.
Budeme používat keytool.exe (k dispozici po instalaci Android Studio, z umístění složky "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") k vytvoření certifikátu pro podepsání balíčku aplikace. Keytool se používá ke správě úložiště klíčů (databáze) kryptografických klíčů, řetězců certifikátů X.509 a důvěryhodných certifikátů.
Chcete-li vygenerovat klíč, otevřete příkazový řádek a spusťte následující příkaz:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Parametry:
- genkey – příkaz pro vygenerování klíče.
- alias – označuje alias, který se má v budoucnu použít k odkazování na položku úložiště klíčů obsahující klíče, které jsou generovány.
- keyalg – název algoritmu klíče.
- keystore – název úložiště klíčů, které používáte.
- keysize – velikost každého klíče, který má být vygenerován.
- validity – platnost klíče v počtu dnů.
Příklad:
Pokud připravujete Key Vault, PATH_TO_KEYSTORE musí mít příponu .pfx.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Pokud se připravujete na ruční podepisování, údaj PATH_TO_KEYSTORE by měl mít příponu .jks.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Generování hodnoty hash podpisu
Poznámka:
Přeskočte na podpis balíčku APK, pokud jste již vygenerovali klíče a hash podpisu při vytváření registrace aplikace.
Po vygenerování klíče se použije příkaz exportcert v keytool k exportu certifikátu úložiště klíčů.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Parametry:
- exportcert – načte z úložiště klíčů certifikát spojený s aliasem a uloží ho do souboru cert_file. Pokud není zadán žádný soubor, certifikát je odeslán do stdout.
- alias – alias použitý při generování klíčů dříve.
- keystore – název úložiště klíčů, které používáte.
- openssl – vygeneruje klíč SHA1 pro Android.
Přidejte vygenerovaný hash podpisu v Identifikátoru URI přesměrování během registrace aplikace.
Ruční převod hex kódu SHA1 na hash podpisu zakódovaný ve formátu Base64
Pokud váš hash podpisu není správně zakódován nebo je pro portál Azure nepřijatelný, může se zobrazit následující chyba:
"Hash podpisu musí být SHA1 zakódovaný ve formátu base64."
Když se objeví tato chyba, zkuste místo toho vygenerovat hash podpisu pomocí následujících kroků:
- Spusťte příkaz
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
, který vypíše informace o certifikátu v podrobném režimu. - Zkopírujte hodnotu SHA1 z části Otisky prstů certifikátu ve výstupu. Ujistěte se, že kopírujete pouze hexadecimální hodnotu.
Příklad:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Pomocí libovolného dostupného převodníku „Hexadecimální hodnota na Base64“ převeďte zkopírovanou hexadecimální hodnotu otisku certifikátu na hodnotu zakódovanou v Base64.
Příklad hodnoty zakódované ve formátu Base64:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Zkopírujte vygenerovanou hodnotu Base64 jako Hash podpisu v portálu Azure během registrace aplikace.
Podepsání balíčku APK
K podepsání balíčku APK použijeme nástroj apksigner. tento nástroj umožňuje podepisovat soubory APK a zajistit, že podpis balíčku APK je úspěšně ověřen na všech platformách Android podporovaných soubory APK.
Vyhledání apksigner
Podívejte na cestu k Android SDK v Android Studio.
Vyberte Nástroj>Správce SDK>Umístění Android SDK.
Pokud používáte iOS, zkontrolujte soubor apksigner z adresáře Verze buildTools:
Přejděte do adresáře SDK>build-tools>buildToolsVersion>lib a zkontrolujte soubor apksigner.jar
Použití souboru apksigner
Spusťte následující příkaz pro použití apksigner a podpisu balíčku:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Parametry:
- ks – cesta k úložišti klíčů.
- ks-key-alias – cesta aliasu klíče k souboru APK.
Po zobrazení výzvy zadejte heslo.
Více informací: Nástroje příkazového řádku Android Studio: apksigner
Distribuce aplikace
Balíček můžete hostovat v distribuční službě, jako je App Center. Chcete-li distribuovat pomocí Microsoft Intune, viz Přidání obchodní aplikace pro Android do Microsoft Intune. Chcete-li zjistit, jak aplikaci poskytnout přístup ke službě ochrany aplikací Intune, přečtěte si téma Udělení přístupu aplikace ke službě Intune App Protection (volitelné).