Codeondertekening voor Android
In dit artikel komt u meer te weten over hoe u apps met code ondertekent voor Android (APK). U moet uw app voor Android ondertekenen als u Android als een van de platforms hebt geselecteerd tijdens het maken en bouwen van uw verpakkingsproject.
Belangrijk
Als u in plaats daarvan een AAB-app voor Google Play-distributie wilt ondertekenen, raadpleegt u Uw app ondertekenen.
Uw pc voorbereiden
U hebt de volgende informatie nodig om aan de slag te gaan:
- Android Studio installeren
- OpenSSL installeren
Sleutels genereren
Notitie
Ga naar Het APK-pakket ondertekenen als u al sleutels en handtekeninghash hebt gegenereerd tijdens het uitvoeren van de app-registratie.
We gebruiken keytool.exe (beschikbaar na installatie van Android Studio, via de maplocatie "Station:\Program Files\Android\Android Studio\jre\bin\keytool.exe") om een certificaat te maken om het toepassingspakket te ondertekenen. Keytool wordt gebruikt om een keystore (database) met cryptografische sleutels, X.509-certificaatketens en vertrouwde certificaten te beheren.
Om een sleutel te genereren, opent u een opdrachtprompt en voert u de volgende opdracht uit:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Parameters:
- genkey: opdracht om een sleutel te genereren.
- alias: geeft de alias aan die in de toekomst moet worden gebruikt om te verwijzen naar het keystore-item dat de sleutels bevat die worden gegenereerd.
- keyalg; naam van sleutelalgoritme.
- keystore: de naam van de keystore die u gebruikt.
- keysize: de grootte van elke te genereren sleutel.
- validity: geldigheid van de sleutel in het aantal dagen.
Voorbeeld:
Bij het voorbereiden van Key Vault moet PATH_TO_KEYSTORE de extensie .pfx hebben.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Als u zich voorbereidt op handmatige ondertekening, moet PATH_TO_KEYSTORE de extensie .jks hebben.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Handtekeninghash genereren
Notitie
Ga naar Het APK-pakket ondertekenen als u al sleutels en handtekeninghash hebt gegenereerd tijdens het uitvoeren van de app-registratie.
Na het genereren van de sleutel wordt de opdracht exportcert in keytool gebruikt om het keystore-certificaat te exporteren.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Parameters:
- exportcert: leest uit de keystore het certificaat dat bij de alias hoort en slaat het op in het bestand cert_file. Als geen bestand is opgegeven, wordt het certificaat uitgevoerd naar stdout.
- alias: de alias die is gebruikt bij het genereren van sleutels eerder.
- keystore: de naam van de keystore die u gebruikt.
- openssl: genereert SHA1-sleutel voor Android.
Voeg de gegenereerde handtekeninghash toe in Omleidings-URI tijdens het registreren van de app.
SHA1 hex handmatig converteren naar Base64-gecodeerde handtekeninghash
Mogelijk ziet u de volgende fout als uw handtekeninghash niet correct is gecodeerd of onacceptabel is in de Azure-portal:
"De handtekeninghash moet base64-gecodeerde SHA1 zijn."
Wanneer deze fout verschijnt, probeert u in plaats daarvan de handtekeninghash te genereren met behulp van de volgende stappen:
- Voer
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
uit om de certificaatinformatie in uitgebreide modus weer te geven. - Kopieer de SHA1-waarde onder de sectie Certificaatvingerafdrukken uit de uitvoer. Zorg ervoor dat u alleen de hexadecimale waarde kopieert.
Bijvoorbeeld:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Gebruik een beschikbare "Hexadecimaal naar Base64"-converter om de gekopieerde hexadecimale waarde van de certificaatvingerafdruk om te zetten in een waarde in Base64-codering.
Voorbeeld van de in Base64 gecodeerde waarde:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Kopieer de gegenereerde Base64-gecodeerde waarde als de handtekeninghash in de Azure-portal tijdens het registreren van de app.
Het APK-pakket ondertekenen
U kunt het apksigner-hulpprogramma gebruiken om het APK-pakket te ondertekenen. Dit hulpprogramma stelt u in staat APK's te ondertekenen en ervoor te zorgen dat de handtekening van het APK-pakket wordt geverifieerd op alle Android-platforms die door de APK's worden ondersteund.
Uw apksigner vinden
Controleer het Android SDK-pad in Android Studio.
Selecteer Hulpmiddel>SDK Manager>Android SDK-locatie.
Als u iOS gebruikt, controleert u het apksigner-bestand in de map buildTools-versie:
Ga naar de map SDK>build-tools>buildToolsVersion>lib en controleer het bestand apksigner.jar
Het apksigner-bestand gebruiken
Voer de volgende opdracht uit om apksigner te gebruiken en het pakket te ondertekenen:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Parameters:
- ks: pad naar de keystore.
- ks-key-alias: sleutelaliaspad naar APK-bestand.
Voer het wachtwoord in wanneer daarom wordt gevraagd.
Meer informatie: Android Studio-opdrachtregelprogramma's: apksigner
De app distribueren
U kunt het pakket hosten op een distributieservice zoals App Center. Zie Een Line-Of-Business-app vanuit Android toevoegen aan Microsoft Intune als u wilt distribueren met Microsoft Intune. Als u wilt weten hoe u een app toegang kunt geven tot de Intune-app-beveiligingsservice, raadpleegt u het artikel Uw app toegang geven tot de Intune app-beveiligingsservice.