Ok here we go. Det vanligaste sättet att skapa en osignerad apk är att använda kommandoraden:
./gradlew assemble<$Flavor><$BuildType>
Det är ganska likadant för app bundle:
./gradlew bundle<$Flavor><$BuildType>
till exempel:
./gradlew assembleProdRelease // building apk./gradlew bundleProdRelease // building app bundle
Typiskt sett är det här kommandona för att bygga en apk/app bundle, men folk lägger ofta till signingConfig i build.gradle för att göra signeringsdelen på samma gång.
Därmed kan vi genom att ta bort den här delen i filen build.gradle skapa ett osignerat apk/app-paket.
Den byggda apk kommer att finnas i: build/outputs/apk/flavor/buildtype/
App-buntle en kommer att finnas i: build/outputs/bundle/flavorBuildType/
Bemärk att den här apk inte kan installeras i enheten utan att vara signerad. Du kommer att få ett fel om du försöker installera den:
För att signera denna apk eller app bundle använder vi först keytool för att generera en keystore (om du inte har någon) och sedan använder vi jarsigner eller apksigner för att signera apk eller app bundle med den genererade keystoren.
Generera keystore:
Exekvera följande kommando:
keytool -genkey -v -keystore <release_keystore.keystore> -alias <alias_name> -keyalg RSA -keysize 2048 -validity 10000
Därefter kommer du att bli tillfrågad om en del information som vanligt, men de viktigaste är lösenordet för keystore och alias-lösenordet. När vi har genererat keystore kommer vi att signera den med olika alternativ.
Signera en apk/app bunt med jarsigner
Antag att du redan har JDK installerat.
jarsigner -keystore <keystore_file> -storepass <storepass> -keypass <keypass> <unsigned_apk_file> <alias_name>
Detta kommando genererar ingen ny fil men den osignerade apk kommer att bli signerad utan synliga externa förändringar (filnamn och filstorlek).
Med ett app-bundle är kommandot exakt detsamma, vi behöver bara ändra sökvägen för apk-filen till app-bundle-filen.
I själva verket är jarsigner ett allmänt verktyg som används för att signera en jar-fil. Det verktyg som är mest anpassningsbart för att signera en apk är apksigner som fungerar på samma sätt som jarsigner, förutom att det inte har stöd för att signera en app bundle.
Signera en apk med apksigner
Viktigt: som namnet antyder är apksigner endast en apk-undertecknare, den kan inte signera ett App Bundle
Syntaxen för detta är lika enkel som för jarsigner:
apksigner sign --ks <keystore_file> <apk_file>
När du har utfört det här kommandot kommer du att bli ombedd att ange lösenordet för keystore och lösenord för alias. Ange dessa uppgifter och sedan är vi klara.