Az Android megköveteli, hogy minden alkalmazást digitálisan aláírjanak egy tanúsítvánnyal, mielőtt telepíthetők lennének. Ahhoz, hogy Android-alkalmazását a Google Play áruházon keresztül terjeszthesse, azt egy kiadási kulccsal kell aláírni, amelyet ezután minden jövőbeli frissítéshez használni kell. 2017 óta lehetőség van arra, hogy a Google Play automatikusan kezelje az aláírási kiadásokat az App Signing by Google Play funkciónak köszönhetően. Mielőtt azonban az alkalmazás bináris verzióját feltöltené a Google Play-be, azt egy feltöltési kulccsal alá kell írni. Az Android Developers dokumentáció Alkalmazások aláírása oldal részletesen ismerteti a témát. Ez az útmutató röviden ismerteti a folyamatot, valamint felsorolja a JavaScript-köteg csomagolásához szükséges lépéseket.
- Feltöltési kulcs generálása#
- Gradle változók beállítása#
- Aláírási konfiguráció hozzáadása az alkalmazás Gradle konfigurációjához#
- A kiadás generálása AAB#
- Az alkalmazás kiadási buildjének tesztelése#
- Más áruházakba való közzététel#
- Enabling Proguard to reduce the size of the APK (optional)#
- Régi Android React Native alkalmazások migrálása az App Signing by Google Play használatára#
- Alapértelmezett engedélyek#
Feltöltési kulcs generálása#
A magán aláírási kulcsot a keytool
segítségével generálhatja. Windows alatt az keytool
-t a C:\Program Files\Java\jdkx.x.x_x\bin
-ból kell futtatni.
Copy
Ez a parancs a keystore és a kulcs jelszavait, valamint a kulcs Distinguished Name mezőit kéri. Ezután létrehozza a kulcstárolót egy my-upload-key.keystore
.
A kulcstároló egyetlen, 10000 napig érvényes kulcsot tartalmaz. Az alias egy olyan név, amelyet később az alkalmazás aláírása során fog használni, ezért ne felejtse el megjegyezni az aliast.
Macen, ha nem tudja biztosan, hogy hol van a JDK bin mappája, akkor a következő paranccsal keresse meg:
Copy
Ez ki fogja adni a JDK könyvtárát, ami valahogy így fog kinézni:
Másolás
Navigáljon ebbe a könyvtárba a cd /your/jdk/path
paranccsal, és használja a keytool parancsot sudo jogosultsággal az alábbiak szerint.
Másolás
Megjegyzés: Ne feledje, hogy a keystore fájlt bizalmasan kell kezelni. Abban az esetben, ha elvesztette a feltöltőkulcsot, vagy az veszélybe került, kövesse ezeket az utasításokat.
Gradle változók beállítása#
- Tegye a
my-upload-key.keystore
fájlt aandroid/app
könyvtár alá a projekt mappájában. - Módosítsa a
~/.gradle/gradle.properties
vagyandroid/gradle.properties
fájlt, és adja hozzá a következőket (a*****
helyébe a megfelelő keystore jelszó, alias és kulcsjelszó kerüljön),
Copy
Ezek globális Gradle változók lesznek, amelyeket később a Gradle configban használhatunk az alkalmazásunk aláírására.
A biztonságra vonatkozó megjegyzés: Ha nem szívesen tároljuk jelszavainkat nyílt szövegben, és macOS-t futtatunk, a hitelesítő adatokat a Keychain Access alkalmazásban is tárolhatjuk. Ekkor kihagyhatja a
~/.gradle/gradle.properties
két utolsó sorát.
Aláírási konfiguráció hozzáadása az alkalmazás Gradle konfigurációjához#
Az utolsó konfigurációs lépés, amit el kell végezni, a release buildek beállítása a feltöltési kulcs használatával történő aláírásra. Szerkeszd a android/app/build.gradle
fájlt a projekt mappádban, és add hozzá az aláírási configot,
Másolás
A kiadás generálása AAB#
Futtassa a következőt egy terminálban:
Másolja
Gradle bundleRelease
az alkalmazás futtatásához szükséges összes JavaScriptet az AAB-be (Android App Bundle). Ha meg kell változtatnia a JavaScript-köteg és/vagy a rajzolható erőforrások kötegelésének módját (pl. ha megváltoztatta az alapértelmezett fájl-/mappaneveket vagy a projekt általános szerkezetét), nézze meg a android/app/build.gradle
-t, hogy megtudja, hogyan tudja frissíteni, hogy tükrözze ezeket a változásokat.
Megjegyzés: Győződjön meg róla, hogy a
gradle.properties
nem tartalmazza aorg.gradle.configureondemand=true
-t, mivel ez azt eredményezi, hogy a release build kihagyja a JS és az eszközök kötegelését az alkalmazás binárisába.
A generált AAB a android/app/build/outputs/bundle/release/app.aab
alatt található, és készen áll a Google Play-be való feltöltésre.
Hogy a Google Play elfogadja az AAB formátumot, az App Signing by Google Play-t be kell állítani az alkalmazáshoz a Google Play konzolon. Ha olyan meglévő alkalmazást frissít, amely nem használja az App Signing by Google Play-t, kérjük, olvassa el a migrációs szakaszunkat, hogy megtudja, hogyan végezze el ezt a konfigurációs módosítást.
Az alkalmazás kiadási buildjének tesztelése#
A kiadási build Play Store-ba történő feltöltése előtt mindenképpen alaposan tesztelje azt. Először távolítsa el az alkalmazás minden korábbi, már telepített verzióját. Telepítse az eszközre a következő paranccsal a projekt gyökerében:
Copy
Megjegyezzük, hogy a --variant release
csak akkor érhető el, ha a fent leírtak szerint beállította az aláírást.
Minden futó bundler-példányt megszüntethet, mivel az összes keretrendszer- és JavaScript-kódja az APK eszközeibe kerül.
Más áruházakba való közzététel#
A generált APK alapértelmezés szerint mind az x86, mind az ARMv7a CPU-architektúrákhoz tartalmazza a natív kódot. Ez megkönnyíti a szinte minden Android-eszközön futtatható APK-k megosztását. Ennek azonban megvan az a hátránya, hogy minden eszközön marad némi fel nem használt natív kód, ami szükségtelenül nagyobb APK-kat eredményez.
Az android/app/build.gradle állományban a következő sor módosításával létrehozhat egy APK-t minden CPU-hoz:
Copy
Töltsük fel mindkét fájlt az eszközcélzást támogató piacokra, mint például a Google Play és az Amazon AppStore, és a felhasználók automatikusan megkapják a megfelelő APK-kat. Ha más piacokra, például az APKFiles-ra szeretnéd feltölteni, amelyek nem támogatnak több APK-t egyetlen alkalmazáshoz, akkor a következő sort is változtasd meg, hogy létrehozd az alapértelmezett univerzális APK-t mindkét processzorhoz való binárisokkal.
Copy
Enabling Proguard to reduce the size of the APK (optional)#
A Proguard egy olyan eszköz, amely kissé csökkentheti az APK méretét. Ezt úgy éri el, hogy eltávolítja a React Native Java bájtkód (és függőségeinek) azon részeit, amelyeket az alkalmazás nem használ.
FONTOS: Győződjön meg róla, hogy alaposan teszteli az alkalmazását, ha engedélyezte a Proguardot. A Proguard gyakran az egyes használt natív könyvtárakra jellemző konfigurációt igényel. Lásd
app/proguard-rules.pro
.
A Proguard engedélyezéséhez szerkessze a android/app/build.gradle
:
Copy
Régi Android React Native alkalmazások migrálása az App Signing by Google Play használatára#
Ha a React Native korábbi verziójáról migrálsz, akkor jó eséllyel az alkalmazásod nem használja az App Signing by Google Play funkciót. Javasoljuk, hogy engedélyezze ezt, hogy kihasználhassa az olyan dolgok előnyeit, mint az automatikus alkalmazásfelosztás. Ahhoz, hogy áttérj a régi aláírási módról, új feltöltési kulcs generálásával kell kezdened, majd a android/app/build.gradle
-ben lévő release signing configot le kell cserélned, hogy a feltöltési kulcsot használd a release helyett (lásd az aláírási config gradle-hez való hozzáadásáról szóló részt). Ha ez megtörtént, kövesse a Google Play súgó weboldalán található utasításokat, hogy elküldje az eredeti kiadási kulcsot a Google Play-nek.
Alapértelmezett engedélyek#
Az Android alkalmazáshoz alapértelmezés szerint a INTERNET
engedélyt adjuk hozzá, mivel nagyjából minden alkalmazás ezt használja. A SYSTEM_ALERT_WINDOW
engedély debug üzemmódban hozzáadódik az Android APK-hoz, de a gyártásban eltávolításra kerül.