Codezeichen für Android
In diesem Artikel lernen Sie, wie Sie eine Codesignatur für Android (APK) hinzufügen. Sie müssen Ihre App für Android signieren, wenn Sie beim Erstellen und Ausführen Ihres Wrapping-Projekts als eine der Plattformen Android ausgewählt haben.
Wichtig
Wenn Sie stattdessen eine AAB-App für die Google Play-Verteilung signieren möchten, lesen Sie Signieren Sie Ihre App.
PC vorbereiten
Um jetzt einzusteigen, benötigen Sie die folgenden Informationen:
- Android Studio installieren
- OpenSSL installieren
Schlüssel generieren
Hinweis
Wechseln Sie zu APK-Paket signieren, wenn Sie Schlüssel und Signature-Hash bereits beim Erstellen der App-Registrierung generiert haben.
Wir verwenden keytool.exe (verfügbar nach der Installation von Android Studio aus dem Ordner „Laufwerk:\Programme\Android \Android Studio \jre\bin\keytool.exe“), um ein Zertifikat zum Signieren des Anwendungspakets zu erstellen. Keytool wird verwendet, um einen Schlüsselspeicher (Datenbank) mit kryptografischen Schlüsseln, X.509-Zertifikatsketten und vertrauenswürdigen Zertifikaten zu verwalten.
Um einen Schlüssel zu generieren, öffnen Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl aus:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Parameter:
- genkey – Befehl zum Generieren eines Schlüssels.
- Alias - gibt den Alias an, der in Zukunft verwendet werden soll, um auf den Keystore-Eintrag zu verweisen, der die erzeugten Schlüssel enthält.
- keyalg – Name des Schlüsselalgorithmus.
- Keystore – der Name des Schlüsselspeichers, den Sie verwenden.
- keysize – die Größe jedes zu generierenden Schlüssels.
- validity – Gültigkeit des Schlüssels in Anzahl an Tagen.
Beispiel:
Bei der Vorbereitung von Key Vault sollte PATH_TO_KEYSTORE die Erweiterung .pfx haben.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Wenn Sie sich auf das manuelle Signieren vorbereiten, sollte PATH_TO_KEYSTORE die Erweiterung .jks haben.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Signatur-Hash generieren
Hinweis
Wechseln Sie zu APK-Paket signieren, wenn Sie Schlüssel und Signature-Hash bereits beim Erstellen der App-Registrierung generiert haben.
Nach der Erzeugung des Schlüssels wird der Befehl exportcert in keytool verwendet, um das Keystore Zertifikat zu exportieren.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Parameter:
- exportcert – Liest das dem Alias zugeordnete Zertifikat aus dem Schlüsselspeicher und speichert es in der cert_file-Datei. Wenn keine Datei angegeben ist, wird das Zertifikat auf stdout ausgegeben.
- alias – der Alias, der beim Generieren von Schlüsseln vorhin verwendet wurde.
- Keystore – der Name des Schlüsselspeichers, den Sie verwenden.
- Openssl – generiert SHA1-Schlüssel für Android.
Fügen Sie den generierten Signatur-Hash der Umleitungs-URI während der Registrierung der App hinzu.
SHA1-Hex- manuell in base64-codierten Signatur-Hash konvertieren
Möglicherweise wird die folgende Fehlermeldung angezeigt, wenn Ihr Signatur-Hash im Azure-Portal nicht korrekt kodiert oder inakzeptabel ist:
„Der Signatur-Hash muss base64-codiert SHA1 sein.“
Wenn dieser Fehler auftritt, versuchen Sie stattdessen, den Signatur-Hash mit den folgenden Schritten zu generieren:
- Führen Sie
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
aus, um die Zertifikatinformationen im ausführlichen Modus aufzulisten. - Kopieren Sie den SHA1-Wert unter dem Abschnitt Zertifikatsfingerabdrücke aus der Ausgabe. Stellen Sie sicher, dass Sie nur den Hexadezimalwert kopieren.
Beispiel:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Verwenden Sie einen beliebigen verfügbaren Hexadezimal-zu-Base64-Konverter, um den kopierten Fingerabdruck-Hexadezimalwert des Zertifikats in einen base64-codierten Wert zu konvertieren.
Beispiel der des base64-codierten Werts:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Kopieren Sie den generierten base64-codierten Wert als Signatur-Hash im Azure-Portal während der Registrierung der App.
APK-Paket signieren
Um das APK-Paket zu signieren, verwenden wir das apksigner-Tool. Dieses Tool lässt Sie APKs signieren und stellt sicher, dass die Signatur des APK-Pakets auf allen von den APKs unterstützten Android-Plattformen erfolgreich überprüft wird.
Ihren apksigner finden
Überprüfen Sie den Android SDK-Pfad in Android Studio.
Wählen Sie Tool > SDK-Manager > Android SDK-Speicherort aus.
Wenn Sie iOS verwenden, überprüfen Sie die apksigner-Datei aus dem Verzeichnis buildTools-Version:
Gehen Sie zu SDK Verzeichnis > Buildtools > buildToolsVersion > lib, und überprüfen Sie die Datei apksigner.jar
Die apksigner-Datei verwenden
Führen Sie den folgenden Befehl aus, um apksigner zu verwenden, und unterschreiben Sie das Paket:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Parameter:
- ks – Pfad zum Schlüsselspeicher.
- ks-key-alias – Schlüsselalias-Pfad zur APK-Datei.
Geben Sie das Kennwort ein, wenn Sie dazu aufgefordert werden.
Mehr Informationen: Android Studio-Befehlszeilentools: apksigner
Die App verteilen
Sie können das Paket auf einem Distributionsdienst wie dem App Center hosten. Informationen zum Verteilen mithilfe von Microsoft Intune finden Sie unter Eine branchenspezifische Android-App zu Microsoft Intune hinzufügen. Informationen zum Gewähren des Zugriffs einer App auf den Intune-App-Schutzdienst finden Sie unter Gewähren Sie Ihrer App Zugriff auf den Intune-App-Schutzdienst.