Ok hier gaan we. De meest gebruikelijke manier om een niet-ondertekende apk te maken is met behulp van de commandoregel:
./gradlew assemble<$Flavor><$BuildType>
Het is redelijk vergelijkbaar voor app bundel:
./gradlew bundle<$Flavor><$BuildType>
bijvoorbeeld:
./gradlew assembleProdRelease // building apk./gradlew bundleProdRelease // building app bundle
Typisch zijn dit de commando’s voor het bouwen van een apk/app bundel, maar mensen voegen vaak de signingConfig toe aan build.gradle om het ondertekeningsgedeelte tegelijkertijd te doen.
Dus, door dit deel te verwijderen in build.gradle bestand, zijn we goed om een niet-ondertekende apk/app bundel te maken.
De gebouwde apk komt te staan in: build/outputs/apk/flavor/buildtype/
De app bundle komt te staan in: build/outputs/bundle/flavorBuildType/
Merk op dat deze apk niet op uw apparaat kan worden geïnstalleerd zonder dat deze is ondertekend. U krijgt een foutmelding als u hem probeert te installeren:
Om die apk of app bundel te ondertekenen, gebruiken we eerst keytool om een keystore te genereren (als u die niet hebt) en vervolgens gebruiken we jarsigner of apksigner om de apk of app bundel te ondertekenen met de gegenereerde keystore.
Genereer een sleutelbewaarplaats:
Voer het volgende commando uit:
keytool -genkey -v -keystore <release_keystore.keystore> -alias <alias_name> -keyalg RSA -keysize 2048 -validity 10000
Dan zal je zoals gewoonlijk om wat informatie gevraagd worden, maar de belangrijkste zijn het sleutelbewaarplaats-wachtwoord en het alias-wachtwoord. Eenmaal de sleutelbewaarplaats gegenereerd, zullen we deze ondertekenen met verschillende opties.
Teken een apk/app bundel met jarsigner
Veronderstel dat u JDK al geinstalleerd hebt.
jarsigner -keystore <keystore_file> -storepass <storepass> -keypass <keypass> <unsigned_apk_file> <alias_name>
Dit commando genereert geen nieuw bestand, maar de ongetekende apk wordt ondertekend zonder zichtbare uiterlijke veranderingen (bestandsnaam en bestandsgrootte).
Met een app bundel is het commando precies hetzelfde, we hoeven alleen het pad van het apk-bestand naar het app bundel-bestand te veranderen.
In feite is jarsigner een algemene tool die wordt gebruikt om een jar-bestand te ondertekenen. De tool die het meest geschikt is voor het ondertekenen van een apk is apksigner, die ongeveer hetzelfde werkt als jarsigner, behalve dat het geen ondersteuning biedt voor het ondertekenen van een app bundel.
Een apk ondertekenen met apksigner
Belangrijk: zoals de naam al aangeeft, is apksigner alleen een apk-ondertekenaar, het kan geen App Bundle ondertekenen
Syntax hiervoor is net zo eenvoudig als voor jarsigner:
apksigner sign --ks <keystore_file> <apk_file>
Na het uitvoeren van deze opdracht wordt u om een keystore-wachtwoord en een alias-wachtwoord gevraagd. Voer deze gegevens in en we zijn klaar.