Ok here we go. Den mest almindelige måde at oprette en usigneret apk på er ved hjælp af kommandolinjen:
./gradlew assemble<$Flavor><$BuildType>
Det er ret ens for app bundle:
./gradlew bundle<$Flavor><$BuildType>
for eksempel:
./gradlew assembleProdRelease // building apk./gradlew bundleProdRelease // building app bundle
Typisk er disse kommandoer til opbygning af en apk/app bundle, men folk tilføjer ofte signingConfig til build.gradle for at gøre signeringsdelen på samme tid.
Så ved at fjerne denne del i build.gradle-filen er vi gode til at oprette et usigneret apk/app-bundle.
Den opbyggede apk vil blive hostet i: build/outputs/apk/flavor/buildtype/
Den ene app bundle vil være i: build/outputs/bundle/flavorBuildType/
Bemærk, at denne apk ikke kan installeres i din enhed uden at være signeret. Du vil få en fejl, hvis du forsøger at installere den:
For at signere denne apk eller app bundle bruger vi først keytool til at generere en keystore (hvis du ikke har en) og bruger derefter jarsigner eller apksigner til at signere apk’en eller app bundlen med den genererede keystore.
Generer keystore:
Udfør følgende kommando:
keytool -genkey -v -keystore <release_keystore.keystore> -alias <alias_name> -keyalg RSA -keysize 2048 -validity 10000
Så vil du blive bedt om nogle oplysninger som sædvanligt, men de vigtigste er keystore-adgangskoden og alias-adgangskoden. Når vi har genereret keystoren, vil vi signere den med forskellige muligheder.
Signér et apk/app-bundle med jarsigner
Antag, at du allerede har JDK installeret.
jarsigner -keystore <keystore_file> -storepass <storepass> -keypass <keypass> <unsigned_apk_file> <alias_name>
Denne kommando genererer ikke nogen ny fil, men den usignerede apk bliver signeret uden synlige eksterne ændringer (filnavn og filstørrelse).
Med et app-bundle er kommandoen nøjagtig den samme, vi skal blot ændre stien til apk-filen til app-bundle-filen.
I virkeligheden er jarsigner et generelt værktøj, der bruges til at signere en jar-fil. Det værktøj, der er mest tilpasningsdygtigt til signering af en apk, er apksigner, som fungerer på samme måde som jarsigner, bortset fra at det ikke understøtter signering af et app-bundle.
Signér en apk med apksigner
Vigtigt: Som navnet antyder, er apksigner kun en apk-underskriver, den kan ikke underskrive en app-bundle
Syntaksen for dette er lige så ligetil som jarsigner:
apksigner sign --ks <keystore_file> <apk_file>
Når du har udført denne kommando, bliver du bedt om keystore-adgangskode og aliasadgangskode. Indtast disse oplysninger, så er vi færdige.