Android cere ca toate aplicațiile să fie semnate digital cu un certificat înainte de a putea fi instalate. Pentru a distribui aplicația Android prin intermediul magazinului Google Play, aceasta trebuie să fie semnată cu o cheie de lansare care trebuie apoi să fie utilizată pentru toate actualizările viitoare. Din 2017, este posibil ca Google Play să gestioneze automat semnarea versiunilor de lansare datorită funcționalității App Signing by Google Play. Cu toate acestea, înainte ca binarul aplicației dvs. să fie încărcat în Google Play, acesta trebuie să fie semnat cu o cheie de încărcare. Pagina Semnarea aplicațiilor dvs. din documentația Android Developers descrie subiectul în detaliu. Acest ghid acoperă procesul pe scurt, precum și enumeră pașii necesari pentru a împacheta pachetul JavaScript.
- Generarea unei chei de încărcare#
- Configurarea variabilelor Gradle#
- Adăugarea configurării de semnare la configurația Gradle a aplicației dumneavoastră#
- Generarea versiunii AAB#
- Testarea versiunii de lansare a aplicației dumneavoastră#
- Publicarea în alte magazine#
- Activarea Proguard pentru a reduce dimensiunea APK-ului (opțional)#
- Migrarea vechilor aplicații Android React Native pentru a utiliza App Signing by Google Play#
- Default Permissions#
Generarea unei chei de încărcare#
Puteți genera o cheie de semnare privată folosind keytool
. Pe Windows, keytool
trebuie să fie rulat din C:\Program Files\Java\jdkx.x.x_x\bin
.
Copy
Această comandă vă solicită parolele pentru keystore și cheie și pentru câmpurile Distinguished Name pentru cheia dumneavoastră. Apoi generează depozitul de chei ca fișier numit my-upload-key.keystore
.
Depozitul de chei conține o singură cheie, valabilă timp de 10000 de zile. Aliasul este un nume pe care îl veți folosi mai târziu când vă veți semna aplicația, așa că nu uitați să rețineți aliasul.
Pe Mac, dacă nu sunteți sigur unde se află dosarul JDK bin, atunci executați următoarea comandă pentru a-l găsi:
Copy
Aceasta va afișa directorul JDK, care va arăta cam așa:
Copiază
Navigați în acel director utilizând comanda cd /your/jdk/path
și utilizați comanda keytool cu permisiunea sudo, așa cum se arată mai jos.
Copy
Nota: Nu uitați să păstrați fișierul keystore privat. În cazul în care ați pierdut cheia de încărcare sau aceasta a fost compromisă, trebuie să urmați aceste instrucțiuni.
Configurarea variabilelor Gradle#
- Plasați fișierul
my-upload-key.keystore
în directorulandroid/app
din dosarul proiectului dvs. - Editați fișierul
~/.gradle/gradle.properties
sauandroid/gradle.properties
și adăugați următoarele (înlocuiți*****
cu parola keystore corectă, aliasul și parola cheii),
Copy
Acestea vor fi variabile Gradle globale, pe care le putem folosi mai târziu în configurația noastră Gradle pentru a semna aplicația noastră.
Nota despre securitate: Dacă nu sunteți dornici să vă stocați parolele în text simplu și folosiți macOS, puteți, de asemenea, să vă stocați acreditările în aplicația Keychain Access. Atunci puteți sări peste ultimele două rânduri din
~/.gradle/gradle.properties
.
Adăugarea configurării de semnare la configurația Gradle a aplicației dumneavoastră#
Ultimul pas de configurare care trebuie făcut este să configurați construcțiile de lansare pentru a fi semnate folosind cheia de încărcare. Editați fișierul android/app/build.gradle
din dosarul proiectului dvs. și adăugați configurația de semnare,
Copy
Generarea versiunii AAB#
Executați următoarele într-un terminal:
Copiați
Gradle’s bundleRelease
va grupa tot JavaScript-ul necesar pentru a vă rula aplicația în AAB (Android App Bundle). Dacă trebuie să modificați modul în care sunt grupate pachetul JavaScript și/sau resursele desenabile (de exemplu, dacă ați schimbat numele implicite ale fișierelor/folderelor sau structura generală a proiectului), aruncați o privire la android/app/build.gradle
pentru a vedea cum puteți să o actualizați pentru a reflecta aceste modificări.
Nota: Asigurați-vă că
gradle.properties
nu includeorg.gradle.configureondemand=true
, deoarece acest lucru va face ca versiunea de compilare să omită gruparea JS și a resurselor în binarul aplicației.
AAB-ul generat poate fi găsit sub android/app/build/outputs/bundle/release/app.aab
și este gata să fie încărcat în Google Play.
Pentru ca Google Play să accepte formatul AAB, App Signing by Google Play trebuie să fie configurat pentru aplicația dvs. în Google Play Console. Dacă actualizați o aplicație existentă care nu utilizează App Signing by Google Play, vă rugăm să consultați secțiunea noastră de migrare pentru a afla cum să efectuați această modificare de configurare.
Testarea versiunii de lansare a aplicației dumneavoastră#
Înainte de a încărca versiunea de lansare în Play Store, asigurați-vă că o testați temeinic. Mai întâi dezinstalați orice versiune anterioară a aplicației pe care o aveți deja instalată. Instalați-o pe dispozitiv folosind următoarea comandă în rădăcina proiectului:
Copy
Rețineți că --variant release
este disponibil numai dacă ați configurat semnarea așa cum am descris mai sus.
Puteți încheia orice instanță bundler care rulează, deoarece tot codul framework și JavaScript este inclus în activele APK-ului.
Publicarea în alte magazine#
În mod implicit, APK-ul generat are codul nativ pentru ambele arhitecturi CPU x86 și ARMv7a. Acest lucru facilitează partajarea APK-urilor care rulează pe aproape toate dispozitivele Android. Cu toate acestea, acest lucru are dezavantajul că va exista o parte din codul nativ nefolosit pe orice dispozitiv, ceea ce duce la APK-uri inutil de mari.
Puteți crea un APK pentru fiecare CPU modificând următoarea linie din android/app/build.gradle:
Copy
Încărcați aceste două fișiere pe piețele care acceptă direcționarea către dispozitive, cum ar fi Google Play și Amazon AppStore, iar utilizatorii vor primi automat APK-ul corespunzător. Dacă doriți să încărcați pe alte piețe, cum ar fi APKFiles, care nu acceptă mai multe APK-uri pentru o singură aplicație, modificați și următoarea linie pentru a crea APK-ul universal implicit cu binare pentru ambele unități centrale de procesare.
Copy
Activarea Proguard pentru a reduce dimensiunea APK-ului (opțional)#
Proguard este un instrument care poate reduce ușor dimensiunea APK-ului. Face acest lucru prin eliminarea părților din bytecode-ul Java React Native (și a dependențelor sale) pe care aplicația dvs. nu le utilizează.
IMPORTANT: Asigurați-vă că testați temeinic aplicația dvs. dacă ați activat Proguard. Proguard necesită adesea o configurație specifică fiecărei biblioteci native pe care o utilizați. Consultați
app/proguard-rules.pro
.
Pentru a activa Proguard, editați android/app/build.gradle
:
Copy
Migrarea vechilor aplicații Android React Native pentru a utiliza App Signing by Google Play#
Dacă migrați de la o versiune anterioară de React Native sunt șanse ca aplicația dvs. să nu utilizeze funcția App Signing by Google Play. Vă recomandăm să o activați pentru a beneficia de lucruri precum divizarea automată a aplicațiilor. Pentru a migra de la vechiul mod de semnare, trebuie să începeți prin a genera o nouă cheie de încărcare și apoi să înlocuiți configurația de semnare a versiunii de lansare din android/app/build.gradle
pentru a utiliza cheia de încărcare în locul celei de lansare (consultați secțiunea despre adăugarea configurației de semnare în gradle). După ce ați făcut acest lucru, trebuie să urmați instrucțiunile de pe site-ul Google Play Help pentru a trimite cheia de lansare originală către Google Play.
Default Permissions#
În mod implicit, permisiunea INTERNET
este adăugată aplicației Android, deoarece aproape toate aplicațiile o folosesc. SYSTEM_ALERT_WINDOW
permisiunea SYSTEM_ALERT_WINDOW
este adăugată la APK-ul dvs. Android în modul de depanare, dar va fi eliminată în producție.