Oké, itt is vagyunk. Az aláírás nélküli apk létrehozásának leggyakoribb módja a parancssor:
./gradlew assemble<$Flavor><$BuildType>
Az app bundle esetében elég hasonló:
./gradlew bundle<$Flavor><$BuildType>
például:
./gradlew assembleProdRelease // building apk./gradlew bundleProdRelease // building app bundle
Tipikusan ezek a parancsok egy apk/app bundle építésére szolgálnak, de az emberek gyakran hozzáadják a signingConfig-et a build.gradle-hez, hogy az aláírási részt egyúttal elvégezzék.
Így, ha eltávolítjuk ezt a részt a build.gradle fájlban, akkor jó, ha egy aláírás nélküli apk/app bundle-t hozunk létre.
A felépített apk a következő helyen lesz elhelyezve: build/outputs/apk/flavor/buildtype/
Az app bundle pedig a következő helyen: build/outputs/bundle/flavorBuildType/
Megjegyezzük, hogy ez az apk aláírás nélkül nem telepíthető a készülékre. Hibát fogsz kapni, ha megpróbálod telepíteni:
Az adott apk vagy app bundle aláírásához először a keytool segítségével generálunk egy keystore-t (ha nincs), majd a jarsigner vagy apksigner segítségével aláírjuk az apk-t vagy app bundle-t a generált keystore-ral.
Generate keystore:
Futtassuk a következő parancsot:
keytool -genkey -v -keystore <release_keystore.keystore> -alias <alias_name> -keyalg RSA -keysize 2048 -validity 10000
Ezután a szokásos módon kérni fog néhány információt, de a legfontosabbak a keystore jelszó és az alias jelszó. Miután létrehoztuk a keystore-t, aláírjuk azt különböző opciókkal.
Sign an apk/app bundle with jarsigner
Tegyük fel, hogy már telepítve van a JDK.
jarsigner -keystore <keystore_file> -storepass <storepass> -keypass <keypass> <unsigned_apk_file> <alias_name>
Ez a parancs nem generál új fájlt, de az alá nem írt apk aláírva lesz minden látható külső változás nélkül (fájlnév és fájlméret).
Az app bundle esetében a parancs pontosan ugyanez, csak az apk fájl elérési útját kell megváltoztatnunk app bundle fájlra.
A jarsigner valójában egy általános eszköz, amelyet a jar fájl aláírására használunk. Az apk aláírására leginkább alkalmas eszköz az apksigner, amely hasonlóan működik, mint a jarsigner, kivéve, hogy nem támogatja az app bundle aláírását.
Sign an apk with apksigner
Fontos: ahogy a neve is mutatja, az apksigner csak egy apk aláíró, App Bundle-t nem tud aláírni
A szintaxis ehhez ugyanolyan egyszerű, mint a jarsigner:
apksigner sign --ks <keystore_file> <apk_file>
A parancs végrehajtása után kérni fogja a keystore jelszót és az alias jelszót. Adja meg ezeket az információkat, majd kész is vagyunk.