Condividi tramite


Compilazione di app React Native per Android

Importante

Visual Studio App Center è pianificato 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 a cui è possibile considerare la migrazione.

Altre informazioni sulle sequenze temporali e sulle alternative di supporto.

App Center può creare app React Native usando React Native versione 0.34 o successiva.

Per iniziare a creare la prima app React Native Android, è necessario:

  1. Connettersi all'account del servizio repository (GitHub, Bitbucket, VSTS, Azure DevOps).
  2. Selezionare un repository e un ramo in cui si trova l'app.
  3. Scegliere il progetto package.json che si vuole compilare.
  4. Configurare la prima compilazione.

Nota

Affinché l'app venga eseguita in un dispositivo reale, la compilazione deve essere firmata con un certificato valido.

1. Collegamento del repository

Se in precedenza non si è connessi all'account del servizio repository, è prima necessario eseguire questa operazione. Dopo aver connesso l'account, selezionare il repository in cui si trova il progetto React Native. Per configurare una compilazione per un repository, è necessario disporre delle autorizzazioni di amministratore e pull.

2. Selezione di un ramo

Dopo aver selezionato un repository, selezionare il ramo da compilare. Per impostazione predefinita, App Center elenca tutti i rami attivi.

3. Configurazione della prima compilazione

Prima della prima compilazione, è necessario configurare il progetto React Native.

3.1. Project

Selezionare l'oggetto del package.jsonprogetto. App Center estrae automaticamente informazioni dal file build.gradle (a livello di app), incluse le dipendenze, la versione degli strumenti di compilazione, i tipi di compilazione e le versioni dei prodotti.

Nota

Per ottenere prestazioni ottimali, l'analisi è attualmente limitata a quattro livelli di directory, inclusa la radice del repository.

3.2. Variante di compilazione

Le varianti di compilazione disponibili verranno popolate dal file build Types and Product Flavor specificato nel file build.gradle (livello app) del progetto. Selezionare la variante di compilazione da compilare.

Nota

La compilazione di App Center supporta la ricerca di varianti di compilazione come combinazione di un tipo di compilazione (debug, versione o personalizzata definita) e di un modello Product Flavor facoltativo. Il rilevamento di combinazioni di più versioni di prodotto non è attualmente supportato.

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. Questa operazione viene definita "Integrazione continua". Se si preferisce attivare manualmente una nuova compilazione, è possibile modificare questa impostazione nel riquadro di configurazione.

3.5. Compilare il bundle di app Android (.aab)

Il bundle di app Android è un formato di distribuzione che può essere caricato in Play Store. Viene usato per generare API ottimizzate per dispositivi specifici. Per altre informazioni sul bundle di app Android, vedere la documentazione ufficiale di Android, che ti aiuta anche a capire se vuoi creare un bundle insieme al tuo normale .apk.

Attivare o disattivare l'opzione per Il bundle di app Android per produrre un oggetto .aab oltre a .apk. Se il build.gradle file (a livello di app) contiene il android.bundle blocco, questa opzione verrà attivata automaticamente.

3.6. Numero di versione incremento

Se abilitata, il codice della versione nella AndroidManifest.xml dell'app aumenta automaticamente per ogni compilazione. La modifica si verifica durante la compilazione effettiva e non verrà eseguito il commit nel repository.

3.7. Avviare la compilazione corretta in un dispositivo reale

Usare il file APK appena prodotto per verificare se l'app viene avviata in un dispositivo reale. I test di avvio aggiungeranno circa 10 minuti al tempo di compilazione totale. Altre informazioni su come configurare i test di avvio.

3.8. Firma del codice

Una compilazione con esito positivo produrrà un .apk file e un file aggiuntivo .aab , se abilitato. Per rilasciare la build nel Play Store, deve essere firmata con un certificato valido archiviato in un archivio chiavi. Per firmare le compilazioni generate da un ramo, abilitare la firma del codice nel riquadro di configurazione, caricare l'archivio chiavi nel repository e fornire i valori pertinenti nel riquadro di configurazione. Per altre informazioni sulla firma del codice Android, vedere la documentazione sulla firma del codice Android di App Center. L'oggetto .aab verrà firmato usando le stesse credenziali di .apk.

3.9. Distribuire la compilazione

È possibile configurare ogni compilazione corretta da un ramo per essere distribuita a un gruppo di distribuzione creato in precedenza o a una destinazione dell'archivio. È possibile aggiungere un nuovo gruppo di distribuzione o configurare una connessione all'archivio dall'interno del servizio Distribuisci. Esiste sempre un gruppo di distribuzione predefinito denominato "Collaboratori" che include tutti gli utenti che hanno accesso all'app.

Nota

Se si distribuisce in Google Play Store, si preferisce un bundle di app Android (.aab) e verrà distribuito se abilitato. Per i gruppi di distribuzione di App Center e le destinazioni dello Store di Intune, verrà usato regolarmente .apk anche se viene generato anche un oggetto .aab .

4. Risultati della compilazione

Dopo i trigger di compilazione, la compilazione sarà in uno degli stati seguenti:

  • queued : la compilazione si trova in una coda in attesa che le risorse vengano liberate
  • compilazione : la compilazione esegue le attività predefinite
  • completato: la compilazione è stata completata e ha avuto esito positivo
  • non riuscito : la compilazione è stata completata ma non è riuscita. È possibile risolvere il problema scaricando ed esaminando il log di compilazione
  • annullato: la compilazione è stata annullata da un'azione dell'utente o è scaduta

4.1. Log di compilazione

Per una compilazione completata (riuscita o non riuscita), scaricare i log per comprendere meglio 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>
    |-- <build-step-2>
    |--
    |-- <build-step-n> (e.g. n_Post Job Cleanup.txt)

I log specifici della 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. L'app (.apk)

Il .apk file è un file in pacchetto dell'applicazione Android che archivia l'app Android. Se la compilazione è stata firmata correttamente, l'app può essere installata in un dispositivo reale e distribuita in Play Store. Se la compilazione non è stata firmata, l'app può essere eseguita in un emulatore o essere usata per altri scopi.

5. Versioni e requisiti supportati

La versione minima supportata per compilare app Android è 5.0 (livello API 21). Le app Android possono avere un livello api minimo inferiore necessario per l'esecuzione, ma deve avere come destinazione almeno il livello API 21.

6. Suggerimenti per la compilazione

6.1. Yarn

La gestione pacchetti 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 yarn install all'inizio della compilazione. In caso contrario, eseguirà npm install.

6.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. Questo script verrà eseguito automaticamente dopo l'installazione delle dipendenze.

      "scripts": {
        ...
        "postinstall" : "npx jetify" // 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: Add your signing key file (from base64 encoded environment variable)
    base64 -d <<< "$ANDROID_JSON_KEY_FILE" > android/keystores/json_key_file.json
    

6.3. Compilazione di più API

Per React Native in Android, la generazione dell'APK universale è disabilitata per impostazione predefinita. Se la configurazione dell'app è configurata per compilare più API, ad esempio diverse per ogni architettura della CPU o configurazione dello schermo, è necessario assicurarsi che sia compilato anche un APK universale. Il sistema di compilazione di App Center funziona con un file APK principale e ignorerà tutti gli API specifici di una determinata densità di CPU/ABI o schermo.

Per altre informazioni sulle divisioni APK e su come creare un APK universale, leggere la guida per sviluppatori Android corrispondente. Di conseguenza, assicurarsi che universalApk sia impostato su true per la configurazione di compilazione React Native.