Android vaatii, että kaikki sovellukset on allekirjoitettava digitaalisesti sertifikaatilla ennen kuin ne voidaan asentaa. Jotta voit levittää Android-sovellustasi Google Play -kaupan kautta, se on allekirjoitettava julkaisuavaimella, jota on sitten käytettävä kaikissa tulevissa päivityksissä. Vuodesta 2017 lähtien Google Play on voinut hallinnoida allekirjoitettuja julkaisuja automaattisesti App Signing by Google Play -toiminnon ansiosta. Ennen kuin sovelluksen binääri ladataan Google Playyn, se on kuitenkin allekirjoitettava latausavaimella. Android Developers -dokumentaation sivulla Signing Your Applications (Sovellusten allekirjoittaminen) kuvataan aihetta yksityiskohtaisesti. Tässä oppaassa käsitellään prosessia lyhyesti ja luetellaan JavaScript-paketin paketoimiseen tarvittavat vaiheet.
- Latausavaimen luominen#
- Gradle-muuttujien määrittäminen#
- Allekirjoituskonfiguraation lisääminen sovelluksen Gradle-konfiguraatioon#
- Julkaisun luominen AAB#
- Sovelluksen julkaisurakennuksen testaaminen#
- Julkaiseminen muihin kauppoihin#
- Proguardin ottaminen käyttöön APK:n koon pienentämiseksi (valinnainen)#
- Vanhojen Android React Native -sovellusten siirtäminen käyttämään App Signing by Google Play -ominaisuutta#
- Oletusoikeudet#
Latausavaimen luominen#
Voit luoda yksityisen allekirjoitusavaimen käyttämällä keytool
. Windowsissa keytool
on ajettava C:\Program Files\Java\jdkx.x.x_x\bin
:sta.
Kopioi
Tämä komento kysyy salasanoja keystorelle ja avaimelle sekä avaimen Distinguished Name -kenttiin. Sen jälkeen se luo avainsäilön tiedostoksi nimeltä my-upload-key.keystore
.
Keystore sisältää yhden avaimen, joka on voimassa 10000 päivää. Alias on nimi, jota käytät myöhemmin sovellusta allekirjoittaessasi, joten muista huomioida alias.
Macissa, jos et ole varma, missä JDK bin -kansiosi on, suorita seuraava komento löytääksesi sen:
Kopioi
Tuloksena on JDK:n hakemisto, joka näyttää jotakuinkin tältä:
Kopioi
Navigoi tuohon hakemistoon komennolla cd /your/jdk/path
ja käytä komentoa keytool sudo-oikeuksin alla esitetyllä tavalla.
Kopioi
Huomautus: Muista pitää avaintallennustietokanta yksityisenä. Jos olet kadottanut latausavaimen tai se on vaarantunut, noudata näitä ohjeita.
Gradle-muuttujien määrittäminen#
- Sijoita
my-upload-key.keystore
-tiedostoandroid/app
-hakemiston alleandroid/app
projektikansiossa. - Muokkaa tiedostoa
~/.gradle/gradle.properties
taiandroid/gradle.properties
ja lisää seuraava (korvaa*****
oikealla keystore-salasanalla, aliaksella ja avaimen salasanalla),
Kopioi
Näistä tulee globaalit Gradle-muuttujat, joita käytämme myöhemmin Gradle-konfiguraatiossamme sovelluksemme allekirjoittamiseksi.
Huomautus tietoturvasta: Jos et halua tallentaa salasanojasi selväkielisinä ja käytät macOS:ää, voit tallentaa tunnistetietosi myös Keychain Access -sovellukseen. Silloin voit ohittaa kaksi viimeistä riviä kohdassa
~/.gradle/gradle.properties
.
Allekirjoituskonfiguraation lisääminen sovelluksen Gradle-konfiguraatioon#
Viimeinen konfigurointivaihe, joka on tehtävä, on release-buildien asettaminen allekirjoitettavaksi upload-avaimen avulla. Muokkaa projektikansiossa olevaa tiedostoa android/app/build.gradle
ja lisää allekirjoituskonfig,
Kopioi
Julkaisun luominen AAB#
Suorita terminaalissa seuraava:
Kopioi
Gradlen bundleRelease
niputtaa kaikki sovelluksesi suorittamiseen tarvittavat JavaScriptit AAB:hen (Android App Bundle). Jos sinun täytyy muuttaa tapaa, jolla JavaScript-kimppu ja/tai piirrettävät resurssit niputetaan (esim. jos olet muuttanut oletustiedostojen/-kansioiden nimiä tai projektin yleistä rakennetta), katso android/app/build.gradle
, miten voit päivittää sen vastaamaan näitä muutoksia.
Huomautus: Varmista, että
gradle.properties
ei sisälläorg.gradle.configureondemand=true
:tä, sillä se saa julkaisubuildin ohittamaan JS:n ja resurssien niputtamisen sovelluksen binääriin.
Luotu AAB löytyy kohdasta android/app/build/outputs/bundle/release/app.aab
, ja se on valmis ladattavaksi Google Playyn.
Jotta Google Play hyväksyisi AAB-muodon, App Signing by Google Play on määritettävä sovelluksellesi Google Play Consolessa. Jos päivität olemassa olevaa sovellusta, joka ei käytä App Signing by Google Play -toimintoa, tutustu migraatio-osiossa siihen, miten tämä määritysmuutos tehdään.
Sovelluksen julkaisurakennuksen testaaminen#
Ennen kuin lataat julkaisurakennuksen Play-kauppaan, varmista, että testaat sen perusteellisesti. Poista ensin kaikki sovelluksen aiemmat versiot, jotka sinulla on jo asennettuna. Asenna se laitteeseen seuraavalla komennolla projektin juuressa:
Kopioi
Huomaa, että --variant release
on käytettävissä vain, jos olet määrittänyt allekirjoittamisen edellä kuvatulla tavalla.
Voit lopettaa kaikki käynnissä olevat bundler-instanssit, koska kaikki kehys- ja JavaScript-koodisi on niputettu APK:n omaisuuseriin.
Julkaiseminen muihin kauppoihin#
Luotu APK sisältää oletusarvoisesti natiivikoodin sekä x86- että ARMv7a-suoritinarkkitehtuurille. Tämä helpottaa lähes kaikissa Android-laitteissa toimivien APK:iden jakamista. Tässä on kuitenkin se haittapuoli, että jokaiseen laitteeseen jää jonkin verran käyttämätöntä natiivikoodia, mikä johtaa tarpeettoman suuriin APK:ihin.
Voit luoda APK:n kullekin suorittimelle muuttamalla seuraavaa riviä android/app/build.gradle-tiedostossa:
Kopioi
Lataa molemmat tiedostot markkinoille, jotka tukevat laitekohtaista kohdentamista, kuten Google Playyn ja Amazonin AppStoreen, ja käyttäjät saavat automaattisesti sopivan APK:n. Jos haluat ladata muille markkinoille, kuten APKFilesiin, jotka eivät tue useita APK-tiedostoja yhdelle sovellukselle, muuta myös seuraavaa riviä luodaksesi oletusarvoisen universaalin APK:n, jossa on binäärit molemmille suorittimille.
Kopioi
Proguardin ottaminen käyttöön APK:n koon pienentämiseksi (valinnainen)#
Proguardin käyttöön ottaminen APK:n koon vähentämiseksi (valinnainen)#
Proguardin avulla APK-kokoa voidaan pienentää hieman. Se tekee tämän poistamalla React Native -Javan tavukoodin (ja sen riippuvuuksien) osat, joita sovelluksesi ei käytä.
TÄRKEÄÄ: Muista testata sovelluksesi perusteellisesti, jos olet ottanut Proguardin käyttöön. Proguard vaatii usein kullekin käyttämällesi natiivikirjastolle ominaista konfigurointia. Katso
app/proguard-rules.pro
.
Voidaksesi ottaa Proguardin käyttöön, muokkaa android/app/build.gradle
:
Kopioi
Vanhojen Android React Native -sovellusten siirtäminen käyttämään App Signing by Google Play -ominaisuutta#
Jos olet siirtymässä aiemmasta React Native -versiosta, on todennäköistä, että sovelluksessasi ei hyödynnetä sovelluksen allekirjoittaminen Googlen Play-ominaisuutta. Suosittelemme, että otat sen käyttöön, jotta voit hyödyntää asioita, kuten sovelluksen automaattista jakamista. Siirtyäksesi vanhasta tavasta allekirjoittaa sinun on aloitettava luomalla uusi latausavain ja korvattava sitten julkaisun allekirjoitusasetukset android/app/build.gradle
:ssä käyttämään latausavainta julkaisuavaimen sijasta (katso osio allekirjoitusasetusten lisäämisestä gradleen). Kun tämä on tehty, sinun tulee noudattaa Google Play Help -sivuston ohjeita alkuperäisen julkaisuavaimen lähettämiseksi Google Playyn.
Oletusoikeudet#
Oletusarvoisesti INTERNET
-oikeus lisätään Android-sovellukseesi, koska lähes kaikki sovellukset käyttävät sitä. SYSTEM_ALERT_WINDOW
-oikeus lisätään Android APK:si debug-tilassa, mutta se poistetaan tuotannossa.