Configurare una compilazione iOS React Native in App Center
Importante
Visual Studio App Center è previsto per il ritiro il 31 marzo 2025. Anche se è possibile continuare a usare Visual Studio App Center fino a quando non viene completamente ritirato, esistono diverse alternative consigliate che è possibile considerare la migrazione a.
Altre informazioni sulle sequenze temporali di supporto e sulle alternative.
App Center può creare app React Native scritte in React Native versione 0.34 o successiva.
Per creare un'app React Native per iOS:
- Connettersi all'account del servizio repository, ad esempio Azure DevOps, Bitbucket, GitHub o VSTS.
- Selezionare un repository e un ramo in cui risiede l'app.
- Configurare il progetto o l'area di lavoro della compilazione e lo schema da compilare.
Nota
Per l'esecuzione dell'app in un dispositivo reale, la compilazione deve essere firmata con un profilo di provisioning valido e un certificato.
1. Collegamento del repository
Prima di tutto, connettere l'account del servizio repository a App Center. Dopo la connessione dell'account, selezionare il repository in cui si trova il progetto iOS. È necessario disporre dell'autorizzazione di amministratore e pull per il repository.
2. Selezione di un ramo
Dopo aver selezionato un repository, selezionare il ramo da compilare. Per impostazione predefinita, tutti i rami attivi verranno elencati.
3. Configurazione della prima compilazione
Prima della prima compilazione, è necessario configurare il progetto di React Native.
3.1. Project
Selezionare il progetto .package.json
App Center rileverà automaticamente il progetto/area di lavoro Xcode associato.
3.2. Versione Xcode
Selezionare la versione Xcode per eseguire la compilazione nell'elenco a discesa.
Se l'interruttore "Usa il sistema di compilazione legacy" è On
, il sistema di compilazione legacy verrà usato indipendentemente dalle impostazioni del progetto o dell'area di lavoro.
Se l'interruttore "Usa il sistema di compilazione legacy" è Off
, verrà usata la configurazione del sistema di compilazione dal progetto o dalle impostazioni dell'area di lavoro.
Nota
- L'impostazione dell'area di lavoro deve essere eseguita come commit nel repository
- Se l'impostazione dell'area di lavoro non viene eseguita il commit, verrà usato il sistema di compilazione moderno
3.3. Versione di Node.js
Selezionare la versione Node.js da usare per la compilazione. Altre informazioni su come selezionare Node.js versione
3.4. Trigger di compilazione
Per impostazione predefinita, viene attivata una nuova compilazione ogni volta che uno sviluppatore esegue il push in un ramo configurato. Se si preferisce attivare manualmente una nuova compilazione, è possibile modificare questa impostazione nel riquadro di configurazione.
3.5. Numero di compilazione incrementa
Quando è abilitato, l'elemento CFBundleVersion
nell'info.plist del progetto dell'app aumenta automaticamente per ogni compilazione. La modifica viene eseguita prima della compilazione e non verrà eseguito il commit nel repository.
3.6. Firma del codice
Una compilazione riuscita genera un .ipa
file. Per installare la compilazione in un dispositivo, la compilazione deve essere firmata con un profilo di provisioning e un certificato validi. Per firmare le compilazioni prodotte da un ramo, abilitare la firma del codice nel riquadro di configurazione e caricare un profilo di provisioning (.mobileprovision
file) e un certificato valido (.p12) insieme alla password per il certificato.
Le impostazioni del progetto Xcode devono essere compatibili con i file caricati. Altre informazioni sulla firma del codice iOS di App Center e sulla documentazione di Apple Developer.
La firma delle app con le estensioni app o watchOS richiede un profilo di provisioning aggiuntivo per estensione.
3.7. Avviare la compilazione riuscita in un dispositivo reale
Usare il file appena prodotto .ipa
per testare se l'app inizia su un dispositivo reale. Il test di avvio aggiunge circa 10 minuti al tempo di compilazione totale. Altre informazioni su come configurare i test di avvio.
3.8. CocoaPods
App Center analizza il ramo selezionato e, se trova un podfile, eseguirà automaticamente un pod install
passaggio all'inizio di ogni compilazione. Ciò garantisce che tutte le dipendenze siano installate.
3.9. Distribuire a un gruppo di distribuzione
Configurare ogni compilazione corretta da un ramo da distribuire a un gruppo di distribuzione creato in precedenza. Aggiungere un nuovo gruppo di distribuzione dall'interno della sezione Distribuisci. Esiste sempre un gruppo di distribuzione predefinito denominato "Collaboratori" che include tutti gli utenti che hanno accesso all'app.
Dopo aver salvato la configurazione, verrà avviata automaticamente una nuova compilazione.
4. Compilare i risultati
Le compilazioni possono essere in uno degli stati seguenti:
- accodato : la compilazione è in attesa di risorse disponibili
- compilazione : la compilazione è in esecuzione ed esegue attività predefinite
- riuscito : la compilazione è stata completata correttamente
- non riuscito: la compilazione è stata completata senza esito positivo; risolvere il problema durante il download e l'ispezione del log di compilazione
- annullata: la compilazione è stata annullata tramite l'azione dell'utente o il timeout
4.1. Log di compilazione
Per una compilazione completata (riuscita o non riuscita), scaricare i log per altre informazioni su come è andata la compilazione. App Center fornisce un archivio con i file seguenti:
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1> (e.g. 2_Get Sources.txt)
|-- <build-step-2> (e.g. 3_Pod install.txt)
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
I log di compilazione (che si trovano nella build/
directory dell'archivio) sono utili per la risoluzione dei problemi e la comprensione del passaggio e del motivo per cui la compilazione non è riuscita.
4.2. App (.ipa)
Il .ipa
file è un file di archivio dell'applicazione iPhone che contiene l'app iOS.
- Se la compilazione è stata firmata correttamente, è possibile installare il file in un dispositivo reale incluso nel profilo di provisioning usato durante la
.ipa
firma. Altre informazioni sulla firma del codice e sulla distribuzione con App Center sono disponibili nella documentazione della firma del codice iOS di App Center. - Se la compilazione non è firmata durante la compilazione, gli sviluppatori possono firmare il
.ipa
file (in locale usando codesign) o usati per altri scopi (ad esempio, caricare nel servizio test per il test dell'interfaccia utente nei dispositivi reali o eseguire nel simulatore). - Le compilazioni senza segno non generano un
.ipa
file. L'artefatto di una compilazione senza segno è il.xcarchive
file, che può essere usato per generare un.ipa
file con l'organizzatore di Xcode Archives.
4.3. File di mapping e simboli di origine
Dopo aver creato un'app iOS React Native, una mappa di origine JavaScript e uno o più .dsym
file vengono generati automaticamente con ogni compilazione e possono essere scaricati dopo il completamento della compilazione.
- se in precedenza si è integrato App Center SDK nell'app con il modulo di creazione di report di arresto anomalo abilitato, il beacon di segnalazione degli arresti anomali richiede questo
.dsym
file e la mappa di origine JavaScript per visualizzare report di arresto anomalo leggibili (simbolici). - se in precedenza è stato integrato un altro SDK per scopi di segnalazione degli arresti anomali nell'app, il servizio corrispondente richiede il file e la
.dsym
mappa di origine JavaScript per visualizzare report di arresto anomalo leggibili (simbolici).
Tenere presente che il file non cambia al momento della .dsym
firma del .ipa
codice . Se si decide di firmare la compilazione in un secondo momento, il .dsym
codice generato prima della firma del codice è ancora valido.
Se questa app ha incluso l'SDK in modo anomalo, i simboli iOS e le mappe di origine verranno inviati al servizio Arresti anomali di App Center. I simboli abilitano i report di arresto anomalo leggibili (simbolici) sia nello stack nativo che in JavaScript.
5. Suggerimenti per la compilazione
5.1. Yarn
Yarn è una sostituzione più veloce e deterministica per npm
. Se un yarn.lock
file è presente nel repository accanto a package.json
, App Center userà Yarn, eseguendo l'operazione yarn install
all'inizio della compilazione. In caso contrario, eseguirà npm install
.
5.2. Script di compilazione personalizzati
Sono disponibili diverse opzioni per l'esecuzione di script prima dell'esecuzione dei comandi di compilazione predefiniti di App Center.
Creare uno script di postinstallazione nel file del
package.json
progetto. Questa operazione viene eseguita automaticamente dopo l'installazione delle dipendenze."scripts": { ... "postinstall" : "eslint ./" // other examples: "node ./postinstall.js" or "./postinstall.sh" },
Scrivere uno script della shell usando la funzionalità degli script di compilazione personalizzati di App Center.
#!/usr/bin/env bash # Example: Authenticate with private NPM registry echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc # Example: Create a file that's not in version control (from base64 encoded environment variable) base64 -d <<< "$MY_FILE_CONTENTS" > ios/SuperSecretFile.txt