Quando crei per gli app store, l'interfaccia della riga di
comando di expo, quindi ciò che digitiamo qui nella riga di comando può aiutarti
o aiutarti, ma potresti dover modificare la configurazione nell'app. file json a seconda delle funzionalità utilizzate dall'applicazione.
Quindi la nostra applicazione qui utilizza un sacco di moduli nativi, tutti questi moduli devono richiedere le
autorizzazioni e facciamo questo con l'API delle autorizzazioni, come ad esempio nel selettore di immagini qui quando chiediamo le autorizzazioni
ma per Android, ad esempio, anche tu devi fornire un elenco delle autorizzazioni necessarie alla tua
app in un file di configurazione che tu, quando usi solo React Native, ma che non hai quando usi expo
perché expo fornisce questo wrapper e fa tutto questo per te in expo client, ma ora non prevediamo
più di utilizzare il client expo e mentre
includerà questo nella tua app standalone come ho già detto, ora devi dire a expo quali
autorizzazioni dovrebbe richiedere lì.
Inoltre, ad esempio, se stai utilizzando Google Maps, devi anche fornire la tua chiave API di Google Maps e con ciò, non
intendo come lo stiamo facendo qui che utilizziamo in alcune parti del nostro codice Javascript, ma per
usa il pacchetto di mappe native di React.
Anche in questo caso l'app client expo utilizza fondamentalmente la propria chiave per lo sviluppo e così via, ma non appena
si prevede di offrire un'app standalone, è necessario portare le proprie chiavi in modo che il wrapper expo
che verrà incluso nell'app standalone utilizzerà la propria chiave perché
il team di Expo non ti fornirà una chiave di loro proprietà.
Ancora una volta, i documenti ufficiali sono i tuoi amici, lì
puoi imparare cosa puoi configurare nell'app. file json e
iniziamo con Android perché lì, dovrai configurare un po 'di più prima di approfondire
ciò che è specifico su iOS.
Quindi per Android, oltre all'icona e così via, ciò che puoi configurare ci sono le autorizzazioni. Ora il fatto è che puoi semplicemente omettere
la chiave delle autorizzazioni e in quel caso, come vedi qui, expo configurerà effettivamente la
tua app per richiedere tutte le autorizzazioni.
Ora non consiglierei di farlo perché le persone guarderanno la tua app nell'App Store e se vedono
che la tua app di gestione dei luoghi di base desidera autorizzazioni per leggere i loro contatti o effettuare chiamate, beh non so di
te ma non lo farei scaricare una tale app.
Quindi la mia raccomandazione è che tu sia specifico riguardo alle autorizzazioni di cui la tua app
ha bisogno e lo fai andando sulla tua app. file json e lì nel nodo Android, aggiungi la
chiave delle autorizzazioni e ora aggiungi le autorizzazioni.
Ora verranno sempre richieste alcune autorizzazioni di base e qui troverai queste autorizzazioni, ad esempio autorizzazioni per ottenere
dati da Internet e così via, ma ora puoi anche aggiungere autorizzazioni per utilizzare la posizione dell'utente
e accedere alla telecamera perché è qualcosa che faremo fare.
Quindi aggiungiamo queste chiavi qui ad autorizzazioni come questa, a stringhe chiavi con virgolette doppie, questo è importante in
questo file, aggiunto
a questo array di autorizzazioni.
Ora avremo anche bisogno dell'autorizzazione di scrittura su memoria esterna per salvare la nostra immagine, quindi dovremmo aggiungere anche quella e con ciò dovremmo
essere buoni
per questa applicazione, ma ovviamente a seconda dell'applicazione che stai costruendo, controlla
attentamente quali autorizzazioni la tua app sarà necessario,
puoi sempre consultare le pagine di documentazione dei pacchetti del modulo nativo che stai utilizzando,
normalmente dovresti trovare una descrizione
delle autorizzazioni necessarie per questo pacchetto. Quindi le autorizzazioni sono
una cosa, inoltre se stai utilizzando Google Maps, dovresti aggiungere il nodo
Google Maps alla tua configurazione Android.
Quindi
qui dopo le autorizzazioni, possiamo aggiungere mappe di Google come questa che contiene anche un oggetto come valore e in quell'oggetto,
puoi impostare la chiave API.
Ancora una volta non è necessario per il client expo quando pubblichiamo l'app in questa pagina expo e utilizziamo l'app client expo
perché lì il team expo ti fornisce in pratica la propria chiave di Google Maps ma se
stai costruendo un'app standalone, è necessario fornire il proprio.
Pertanto, assicurati di utilizzare la tua chiave qui in questo modo e anche importante e che ho già menzionato
questo nel modulo non
expo, assicurati che nelle API di Google, quindi nella console cloud di Google quando controlli la tua libreria API, tu assicurati che l'SDK delle
mappe per Android sia abilitato per questo progetto a cui appartiene questa chiave API che hai
fornito.
Quindi qui è
abilitato, questo deve appartenere al progetto per il quale hai creato quella chiave API
che ora stai fornendo qui, altrimenti non funzionerà. Quindi queste sono le autorizzazioni e le impostazioni di Google Map
e potresti aver bisogno di altre impostazioni specifiche
che puoi conoscere qui nell'app. file json a seconda delle funzionalità che stai utilizzando.
Puoi anche configurare Naturalmente tutto il resto e
tante altre cose, una cosa che devi assolutamente fornire per costruire la tua app è anche questa chiave del pacchetto.
Questo è qualcosa che devi sempre aggiungere indipendentemente dall'utilizzo della tua
app, qui nel nodo Android, devi fornire la chiave del pacchetto e questo ora deve avere un certo formato.
È fondamentalmente un URL inverso, un URL fittizio che non deve esistere ma che funge da identificatore univoco
in tutto il Google Play Store, quindi dovrebbe essere un
URL inverso che nessun altro ha usato prima e quindi in genere se possiedi un
dominio, useresti il tuo dominio per esempio com. accademind, quindi un dominio inverso e quindi
un identificatore univoco, come posti fantastici. Puoi trovare qualsiasi URL tu voglia qui, ma
ovviamente dovrebbe essere unico e quindi dovresti usare il tuo dominio o un dominio fittizio
che non è di proprietà
di nessuno, quindi non accademico perché possiedo questo, quindi qualsiasi altro dominio, qualsiasi altro identificatore fittizio che dovrebbe avere
questo formato, questo
è ciò che fornisci qui.
Devi anche fornire qualcosa di simile su iOS, lì se vai su
iOS, non è necessario fornire questa impostazione di autorizzazione poiché le autorizzazioni iOS funzionano in modo diverso, è necessario fornire
una chiave API
di Google Maps se si utilizza Google Maps versione del pacchetto mappe per iOS, il valore predefinito
di questo pacchetto è comunque l'utilizzo di Apple Maps e non l'ho modificato nella mia app, quindi
non ho bisogno di fornire l'API di Google Maps qui,
ma quello che devi assolutamente fornire qui è un identificatore di bundle. Quindi sostituisci il pacchetto con l'identificatore del bundle e il formato è
lo stesso, hai questa sintassi
URL inversa qui e la chiamerò com. academind. corso in posti fantastici e usa
anche quell'edizione di corso qui su Android.
Quindi l'identificatore del bundle per iOS e il pacchetto per Android devono essere impostati su un URL univoco così inverso.
Ora oltre a questi identificatori, devi anche impostare qualcos'altro, su iOS devi
aggiungere un numero di build, quindi anche qui nel nodo iOS e il numero di build dovrebbe
essere una stringa che identifica la tua build. Lì, dovresti avere un numero di build proprio come questa versione lassù e lavorare
nel modo in cui l'ho spiegato lassù.
Quindi dovrebbe essere un numero composto da tre cifre in cui hai un numero di patch per patch, correzioni di
bug, quindi questo numero di aggiornamento minore per nuove funzionalità che non interrompono tutto e questo numero di
aggiornamento principale, puoi modificarlo
come vuoi ma dovresti cambiarlo per ogni nuova versione che pubblichi
e distribuisci e ovviamente dovresti cambiarlo in modo tale da riflettere ciò che è cambiato.
Ora hai bisogno di qualcosa di simile
per Android, se torniamo alla documentazione di Android, ci serve anche un codice di versione. Quindi qui aggiungiamo il codice della versione e ora qui questa
non è una stringa ma un numero che dovresti semplicemente incrementare di uno per ogni
nuova versione.
Quindi inizi da una, la
prossima versione che rilasci, anche se contiene solo alcune piccole correzioni dovrebbe essere due e poi tre e
così via.
Quindi è quello che dovresti impostare qui, ecco come funziona per Android, trovi anche quella
descrizione qui nella documentazione e con
ciò, ora siamo pronti a distribuirlo o costruirlo prima e, come ho già detto,
il bello la cosa su expo gestita è che ora puoi costruirla sui server
cloud di expo.
Quindi, ciò che dovresti fare è eseguire Expo Publish per pubblicare l'ultima versione della tua app sui server di Expo proprio
come quella che non la costruirà ancora come app standalone e ora quello che
ottengo qui sono un paio di avvertimenti o errori. Quindi vediamo che Android non dovrebbe avere proprietà aggiuntive Google
Maps, sì perché
dovrebbe essere in un nodo di configurazione,
errore mio.
Quindi dovresti aggiungere config qui e in config, potresti avere questa chiave di Google Maps,
è un piccolo errore dalla mia parte e qui per il pacchetto, Android in realtà non gradisce i trattini lì
dentro ma puoi usare i trattini bassi, quindi usiamo questo . Con quello risolto, ora eseguiamo expo publishing di nuovo per convalidare di
nuovo questo e quindi pubblicare la versione più recente
sui server di expo che di nuovo non avvierà ancora il processo di compilazione ma che è una preparazione
importante e una volta fatto, sei pronto per costruisci anche la tua app per Android e
iOS.
Ora la differenza tra pubblicazione e costruzione è che la pubblicazione invia semplicemente il codice e la configurazione ai server di
expo e quindi è possibile eseguire la scansione del codice a barre con il client expo e così via.
Costruire significa sfruttare il servizio di cloud build di expo per creare davvero un bundle di
app Android o un file IPA iOS,
questi sono i file che successivamente caricherai negli app store, quindi qui
c'è un'enorme differenza. Ora questi bundle che
costruisci come accennato in precedenza includono il client expo, per così
dire, includono questo come un wrapper per la tua app ma è una vera e propria app
nativa quindi, dopo tutto, quindi è un'app nativa con solo questo piccolo wrapper extra
piccolo attorno ad essa tenendo conto della configurazione che hai impostato qui, ad esempio per quanto riguarda le autorizzazioni.
Inoltre, queste app create sui server di Expo che è possibile distribuire tramite gli store di app parleranno con i
server di Expo per la funzionalità di aggiornamento via etere. Quindi continuerai a pubblicare nuovi aggiornamenti con expo successivamente
e le tue app autonome in esecuzione su altri dispositivi riceveranno questi aggiornamenti pubblicati, quindi la
pubblicazione è ancora importante anche se stai
costruendo app autonome, se stai creando bundle di app perché questi bundle di
app continueranno a parlare con i server di expo per ottenere nuove versioni.
Ma parlando di questo, come possiamo costruire questi bundle ora?
Lo fai con il comando expo build e lì hai build: Android e
build: iOS.
Bene, iniziamo con build: Android e come suggerisce il nome, questo crea un'app per Android.
Puoi imparare tutto sul processo di compilazione autonomo nei documenti di expo delle app standalone
che trovi anche allegato qui e là trovi la configurazione di base di cui hai
bisogno e cosa dovresti prendere in considerazione lì. Per Android, qui trovi che anche in questo momento
almeno puoi scegliere se vuoi creare un APK o un file di bundle di app, si
consiglia di creare un
file di bundle di app perché è il formato preferito desiderato da Google e per questo puoi eseguire invece
di expo build Android, esegui expo build Android -t app-bundle aggiuntivo. Se ora premi Invio, questo alla fine convaliderà la tua configurazione
e quindi trasferirà il tuo codice ai server di build cloud di Expo dove questo sarà ora programmato.
Ora, prima di tutto, ti chiederà perché le app devono essere firmate, ciò accade con
una coppia di chiavi pubbliche private che alla fine viene utilizzata per identificarti come
autore dell'app, aggiornamenti futuri dell'app e con ciò che
io don significano gli aggiornamenti che hai pubblicato sui server di expo con il comando
di pubblicazione expo ma quando ricostruisci l'app, quando ricostruisci il pacchetto che poi ricarichi negli app
store che occasionalmente dovrai fare se, ad esempio, cambi l'icona o qualcos'altro che non può
essere condiviso con expo
publishing, in questi casi, è necessario firmare l'aggiornamento con le stesse chiavi utilizzate per creare l'app originale per identificarti
come autore, altrimenti l'App Store
negherà questo aggiornamento, non accetterà la tua prossima versione dell'app. Quindi quindi devi firmare la tua app e se sai
cosa stai facendo, puoi creare e caricare il tuo archivio chiavi ma qui rimarrò alla
versione
uno e lascerò gestire expo ciò che significa che creerà
tale chiave per l'assegnazione e fare tutte le cose per la firma per te sui loro server, quindi è
quello che scelgo qui.
Ora con ciò, costruisce di nuovo l'app proprio come per la pubblicazione e anche se sto costruendo un'app Android, la costruisce ancora per iOS qui perché alla
fine quello che fa qui è pubblicare l'app. Quindi aspettiamo che finisca, ora
sta facendo lo stesso di expo pubblicandolo, ma da quel momento in poi
pianificherà che questo sia costruito sui server di expo.
Quindi ora la pubblicazione è terminata e ora pianifica una tale build e la mette in coda, questo a proposito è un
processo che ora puoi chiudere come dice qui, puoi sempre controllare lo stato della tua build inserendo
questo URL, tu ' Dovrai
accedere con il tuo account expo lì e quindi potrai vedere lo stato della build.
Ora importante,
questa build può richiedere molto
tempo, la build stessa non è così tanto ma fino a quando la build non viene costruita perché è pianificata,
tieni presente che si tratta di un servizio
gratuito, quindi ovviamente non viene creato immediatamente ma quando i server dell'expo hanno spazio per questo.
Questo può richiedere un paio di minuti, anche ore prima che ciò accada, quindi non preoccuparti
se ciò richiede del tempo, puoi sempre controllare questo URL che stai vedendo nella tua riga di comando
per vedere cosa sta succedendo. Quindi puoi uscire da questo,
questo è anche un URL in cui troverai successivamente i file di build,
quindi ecco il mio stato di build se lo controlliamo, vedi che è carino e in questo momento, non sta
succedendo nient'altro, possiamo rivisitare
questo in seguito per vedere il processo di compilazione e il download del bundle dell'app finito e
per ora, facciamo lo stesso per iOS.
Questo può essere
fatto eseguendo expo build iOS. Ora importante, per creare app iOS, è necessario un account Apple Developer a
pagamento, questo è un must.
Quindi dovrai andare dallo sviluppatore. Mela. com e lì, dovrai accedere con il tuo
ID Apple e quindi ottenere sostanzialmente un account così pagato, quindi dovrai aggiungere la tua carta di credito e pagare una
commissione di $ 99. Ciò è necessario, non
vi è alcun
modo per evitarlo, Apple lo richiede per creare app che si desidera pubblicare nei loro negozi.
Non è necessario durante lo sviluppo,
ma ora per condividere l'app, è necessario averlo.
Fondamentalmente è una tassa che è lì per consentire solo alle persone del negozio che hanno almeno una sorta di
obiettivi seri lì immagino.
Quindi assicurati di accedere qui e configurare il tuo account Apple Developer a pagamento per aderire al
Programma Apple Developer e, successivamente, puoi eseguire questo comando
e ti chiederà di accedere con il tuo account Apple Developer. Quindi accedi con il tuo ID Apple e la password
e che i dati non verranno archiviati sui server di Expo, nessun problema,
ma ha bisogno
che configuri tutto per costruire la tua app perché per il processo di costruzione di Apple, hai
bisogno di certificati speciali e così via può richiedere per tuo conto con questi dati.
Una volta effettuato l'accesso, ti viene chiesto come vuoi gestire le tue credenziali, proprio come prima
se non sai cosa stai facendo, dovresti lasciare che Expo gestisca tutto ciò perché,
come ho già detto, hai bisogno di un paio di certificati speciali per creare la tua app iOS ed expo possono richiedere tutto
ciò per te e impostare tutto ciò per te, quindi lascerò che expo faccia questo per tutti questi
passaggi e ora farà praticamente tutto per te.
Ora questo crea anche la mia app qui per iOS e la pubblica di nuovo prima, è lo stesso che abbiamo
fatto prima per Android e ora abbiamo anche una build pianificata per iOS. Proprio come prima, questo è in
coda, puoi uscire e guardare la tua build qui nel browser.
Quindi ora non abbiamo solo quella build di Android in coda, ma abbiamo anche quella build di iOS
in coda ed entrambi impiegheranno un po 'a finire.
Ora c'è una cosa importante che devi fare anche dopo aver
completato questa
build di Android che non è ancora, dovresti eseguire expo fetch: android: keystore.
Anche in questo caso funziona solo dopo il completamento della compilazione perché recupererà questo
keystore generato automaticamente che Expo genera per te se lo hai scelto nella configurazione di cui hai bisogno per gli
aggiornamenti futuri di questa app. Ne avrai sicuramente bisogno e nei futuri
aggiornamenti quando ricostruirai l'app, dovrai quindi scegliere di fornire il tuo keystore personale e quindi devi fornire
questo keystore, quindi inserisci il percorso di questo keystore che poi scarichi.
Quindi questo comando alla fine scaricherà un file generato sui server di Expo che è necessario
archiviare sul proprio sistema per futuri aggiornamenti della stessa
app, altrimenti non sarà possibile aggiornare.
Quindi questo è un comando importante che dovrai eseguire una volta completata questa build. Bene e con ciò, aspettiamo che
finisca, iOS in
realtà sta già costruendo, Android è ancora in coda ma
iOS è già in movimento, quindi
aspettiamo che la build di iOS finisca e ora questo è fatto,
ora il mio iOS la compilazione è terminata.
Ora puoi anche controllare i documenti ufficiali su come continuare con questo test sul tuo dispositivo
o simulatore o poi andare alla parte in cui carichi l'app su Apple App Store e Google Play Store.
Quindi costruiamo
l'app, ora puoi caricarla eseguendo il caricamento expo: iOS, questo per impostazione predefinita utilizzerà la tua ultima app e
la caricherà sull'App Store.
Ora è la parte che non farò qui perché non voglio davvero pubblicare questa app qui ma
è quello che faresti
ora, userebbe questa applicazione che è stata appena costruita qui per iOS o per
Android, Android build è ora funziona anche come vedo, quindi userebbe questo e poi lo pubblicherebbe con
questo comando su iOS o con questo comando su Android, su Google Play Store.
Ora segui i passaggi che trovi qui nei documenti per creare gli account appropriati e impostare
tutto correttamente in modo che questo comando possa
avere successo e con ciò, avrai la tua app distribuita sull'App Store di Apple e sul Google Play Store
in modo che tu può portare la tua app a qualsiasi utente in tutto il mondo come app autonoma, non dipende
dal client expo installato sui dispositivi che è abbastanza pulito.