Distribuisci app Android ai tester utilizzando Gradle

Puoi integrare App Distribution nel processo di creazione di Android utilizzando il plug-in App Distribution Gradle. Il plug-in ti consente di specificare i tuoi tester e le note di rilascio nel file Gradle della tua app, permettendoti di configurare distribuzioni per diversi tipi di build e varianti della tua app.

Questa guida descrive come distribuire gli APK ai tester utilizzando il plug-in App Distribution Gradle.

Prima di iniziare

Se non l'hai già fatto, aggiungi Firebase al tuo progetto Android .

Se non utilizzi altri prodotti Firebase, devi solo creare un progetto e registrare la tua app. Tuttavia, se decidi di utilizzare prodotti aggiuntivi in ​​futuro, assicurati di completare tutti i passaggi nella pagina collegata sopra.

Passaggio 1. Configura il tuo progetto Android

  1. Nel file Gradle a livello di root (a livello di progetto) ( <project>/build.gradle.kts o <project>/build.gradle ), aggiungi il plug-in App Distribution Gradle come dipendenza:

    Kotlin

    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.0" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "4.0.1" apply false
    }
    

    Groovy

    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.0' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '4.0.1' apply false
    }
    
  2. Nel file Gradle del tuo modulo (a livello di app) (solitamente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle ), aggiungi il plug-in App Distribution Gradle:

    Kotlin

    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }
    

    Groovy

    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
    
  3. Se sei protetto da un proxy o firewall aziendale, aggiungi la seguente proprietà di sistema Java che consente a App Distribution di caricare le tue distribuzioni su Firebase:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

Passaggio 2. Autenticarsi con Firebase

Prima di poter utilizzare il plugin Gradle, devi prima autenticarti con il tuo progetto Firebase in uno dei seguenti modi. Per impostazione predefinita, il plug-in Gradle cerca le credenziali dalla CLI Firebase se non viene utilizzato nessun altro metodo di autenticazione.

Passaggio 3. Configura le proprietà di distribuzione

Nel file Gradle del modulo (a livello di app) (solitamente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle ), configura App Distribution aggiungendo almeno una sezione firebaseAppDistribution .

Ad esempio, per distribuire la build release ai tester, seguire queste istruzioni::

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("release") {
          firebaseAppDistribution {
              artifactType = "APK"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="APK"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Puoi configurare App Distribution per tipi di build e caratteristiche di prodotto .

Ad esempio, per distribuire build debug e release nelle versioni di prodotto "demo" e "complete", segui queste istruzioni:

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

Utilizzare i seguenti parametri per configurare la distribuzione:

Parametri di build della distribuzione dell'app
appId

L'ID app Firebase della tua app. Necessario solo se non hai installato il plug-in Google Services Gradle. Puoi trovare l'ID app nel file google-services.json o nella console Firebase nella pagina Impostazioni generali . Il valore nel tuo file build.gradle sovrascrive il valore restituito dal plug-in google-services .

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

Il percorso del file JSON della chiave privata dell'account di servizio. Obbligatorio solo se utilizzi l'autenticazione dell'account di servizio.

artifactType

Specifica il tipo di file dell'app. Può essere impostato su "AAB" o "APK" .

artifactPath

Percorso assoluto del file APK o AAB che desideri caricare.

releaseNotes o releaseNotesFile

Note sulla versione per questa build.

È possibile specificare direttamente le note sulla versione o il percorso di un file di testo semplice.

testers o testersFile

Gli indirizzi email dei tester a cui desideri distribuire le build.

Puoi specificare i tester come un elenco di indirizzi email separati da virgole:

testers="ali@example.com, bri@example.com, cal@example.com"

In alternativa, puoi specificare il percorso di un file contenente un elenco di indirizzi email separati da virgole:

testersFile="/path/to/testers.txt"
groups o groupsFile

I gruppi di tester a cui desideri distribuire le build (vedi Gestisci tester ). I gruppi vengono specificati utilizzando alias di gruppo , che puoi trovare nella scheda Tester nella console Firebase App Distribution.

È possibile specificare i gruppi come elenco di alias di gruppo separati da virgole:

groups="qa-team, android-testers"

In alternativa, puoi specificare il percorso di un file contenente un elenco di alias di gruppo separati da virgole:

groupsFile="/path/to/tester-groups.txt"
stacktrace

Stampa lo stacktrace per le eccezioni utente. Ciò è utile durante il debug dei problemi.

Passaggio 4. Distribuisci la tua app ai tester

  1. Infine, per creare un pacchetto della tua app di test e invitare i tester, crea le destinazioni BUILD-VARIANT e appDistributionUpload BUILD-VARIANT con il wrapper Gradle del tuo progetto, dove BUILD-VARIANT è la versione di prodotto opzionale e il tipo di build che hai configurato nel passaggio precedente. Per ulteriori informazioni sulle versioni del prodotto, consulta Configurare le varianti di build .

    Ad esempio, per distribuire la tua app utilizzando la variante build release , esegui il comando seguente:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    Oppure, se ti sei autenticato con il tuo account Google e non hai fornito le credenziali nel file di build Gradle, includi la variabile FIREBASE_TOKEN :

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew assembleRelease appDistributionUploadRelease
    
  2. Puoi anche sovrascrivere i valori impostati nel file build.gradle passando gli argomenti della riga di comando nel formato --<property-name>=<property-value> . Per esempio:

    • Per caricare una build di debug su App Distribution:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • Per invitare ulteriori tester o rimuovere tester esistenti dal tuo progetto Firebase:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      

      Una volta aggiunto un tester al tuo progetto Firebase, puoi aggiungerlo alle singole versioni. I tester rimossi non avranno più accesso alle versioni nel tuo progetto, ma potrebbero comunque mantenere l'accesso alle tue versioni per un periodo di tempo.

    Puoi anche specificare i tester utilizzando --file="/path/to/testers.txt" invece di --emails .

    Le attività appDistributionAddTesters e appDistributionRemoveTesters accettano anche i seguenti argomenti:

    • projectNumber : il numero del tuo progetto Firebase.

    • serviceCredentialsFile : il percorso del file delle credenziali del servizio Google. Questo è lo stesso argomento utilizzato dall'azione di caricamento.

Il plugin Gradle restituisce i seguenti collegamenti dopo il caricamento della versione. Questi collegamenti ti aiutano a gestire i file binari e a garantire che i tester e gli altri sviluppatori dispongano della versione corretta:

  • firebase_console_uri - Un collegamento alla console Firebase che mostra una singola versione. Puoi condividere questo collegamento con altri sviluppatori nella tua organizzazione.
  • testing_uri : un collegamento alla versione nell'esperienza del tester (app nativa Android) che consente ai tester di visualizzare le note sulla versione e installare l'app sul proprio dispositivo. Il tester deve accedere alla versione per poter utilizzare il collegamento.
  • binary_download_uri : un collegamento firmato che scarica e installa direttamente il file binario dell'app (file APK o AAB). Il collegamento scade dopo un'ora.

Una volta distribuita, la build diventa disponibile nel dashboard Distribuzione app della console Firebase per 150 giorni (cinque mesi). Quando mancano 30 giorni alla scadenza della build, viene visualizzato un avviso di scadenza sia nella console che nell'elenco delle build del tester sul dispositivo di test.

I tester che non sono stati invitati a testare l'app ricevono inviti via email per iniziare, mentre i tester esistenti ricevono notifiche via email che una nuova build è pronta per il test (leggi la guida alla configurazione del tester per istruzioni su come installare l'app di prova). Puoi monitorare lo stato di ciascun tester, se ha accettato l'invito e se ha scaricato l'app, nella console Firebase.

I tester hanno 30 giorni per accettare un invito a testare l'app prima che scada. Quando mancano 5 giorni alla scadenza di un invito, nella console Firebase accanto al tester viene visualizzato un avviso di scadenza su una versione. È possibile rinnovare un invito inviandolo nuovamente utilizzando il menu a discesa nella riga tester.

Prossimi passi

,

Puoi integrare App Distribution nel processo di creazione di Android utilizzando il plug-in App Distribution Gradle. Il plug-in ti consente di specificare i tuoi tester e le note di rilascio nel file Gradle della tua app, permettendoti di configurare distribuzioni per diversi tipi di build e varianti della tua app.

Questa guida descrive come distribuire gli APK ai tester utilizzando il plug-in App Distribution Gradle.

Prima di iniziare

Se non l'hai già fatto, aggiungi Firebase al tuo progetto Android .

Se non utilizzi altri prodotti Firebase, devi solo creare un progetto e registrare la tua app. Tuttavia, se decidi di utilizzare prodotti aggiuntivi in ​​futuro, assicurati di completare tutti i passaggi nella pagina collegata sopra.

Passaggio 1. Configura il tuo progetto Android

  1. Nel file Gradle a livello di root (a livello di progetto) ( <project>/build.gradle.kts o <project>/build.gradle ), aggiungi il plug-in App Distribution Gradle come dipendenza:

    Kotlin

    plugins {
        // ...
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.4.0" apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id("com.google.firebase.appdistribution") version "4.0.1" apply false
    }
    

    Groovy

    plugins {
        // ...
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.4.0' apply false
    
        // Add the dependency for the App Distribution Gradle plugin
        id 'com.google.firebase.appdistribution' version '4.0.1' apply false
    }
    
  2. Nel file Gradle del tuo modulo (a livello di app) (solitamente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle ), aggiungi il plug-in App Distribution Gradle:

    Kotlin

    plugins {
      id("com.android.application")
    
      // Make sure that you have the Google services Gradle plugin
      id("com.google.gms.google-services")
    
      // Add the App Distribution Gradle plugin
      id("com.google.firebase.appdistribution")
    }
    

    Groovy

    plugins {
      id 'com.android.application'
    
      // Make sure that you have the Google services Gradle plugin
      id 'com.google.gms.google-services'
    
      // Add the App Distribution Gradle plugin
      id 'com.google.firebase.appdistribution'
    }
    
  3. Se sei protetto da un proxy o firewall aziendale, aggiungi la seguente proprietà di sistema Java che consente a App Distribution di caricare le tue distribuzioni su Firebase:

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

Passaggio 2. Autenticarsi con Firebase

Prima di poter utilizzare il plugin Gradle, devi prima autenticarti con il tuo progetto Firebase in uno dei seguenti modi. Per impostazione predefinita, il plug-in Gradle cerca le credenziali dalla CLI Firebase se non viene utilizzato nessun altro metodo di autenticazione.

Passaggio 3. Configura le proprietà di distribuzione

Nel file Gradle del modulo (a livello di app) (solitamente <project>/<app-module>/build.gradle.kts o <project>/<app-module>/build.gradle ), configura App Distribution aggiungendo almeno una sezione firebaseAppDistribution .

Ad esempio, per distribuire la build release ai tester, seguire queste istruzioni::

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("release") {
          firebaseAppDistribution {
              artifactType = "APK"
              releaseNotesFile = "/path/to/releasenotes.txt"
              testers = "ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      release {
          firebaseAppDistribution {
              artifactType="APK"
              releaseNotesFile="/path/to/releasenotes.txt"
              testers="ali@example.com, bri@example.com, cal@example.com"
          }
      }
  }

  // ...
}

Puoi configurare App Distribution per tipi di build e caratteristiche di prodotto .

Ad esempio, per distribuire build debug e release nelle versioni di prodotto "demo" e "complete", segui queste istruzioni:

Kotlin

import com.google.firebase.appdistribution.gradle.firebaseAppDistribution

android {

  // ...

  buildTypes {
      getByName("debug") {...}
      getByName("release") {...}
  }

  flavorDimensions += "version"
  productFlavors {
      create("demo") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for demo version"
              testers = "demo@testers.com"
          }
      }
      create("full") {
          dimension = "version"
          firebaseAppDistribution {
              releaseNotes = "Release notes for full version"
              testers = "full@testers.com"
          }
      }
  }

  // ...
}

Groovy

android {

  // ...

  buildTypes {
      debug {...}
      release {...}
  }

  flavorDimensions "version"
  productFlavors {
      demo {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for demo version"
              testers="demo@testers.com"
          }
      }
      full {
          dimension "version"
          firebaseAppDistribution {
              releaseNotes="Release notes for full version"
              testers="full@testers.com"
          }
      }
  }

  // ...
}

Utilizzare i seguenti parametri per configurare la distribuzione:

Parametri di build della distribuzione dell'app
appId

L'ID app Firebase della tua app. Necessario solo se non hai installato il plug-in Google Services Gradle. Puoi trovare l'ID app nel file google-services.json o nella console Firebase nella pagina Impostazioni generali . Il valore nel tuo file build.gradle sovrascrive il valore restituito dal plug-in google-services .

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

Il percorso del file JSON della chiave privata dell'account di servizio. Obbligatorio solo se utilizzi l'autenticazione dell'account di servizio.

artifactType

Specifica il tipo di file dell'app. Può essere impostato su "AAB" o "APK" .

artifactPath

Percorso assoluto del file APK o AAB che desideri caricare.

releaseNotes o releaseNotesFile

Note sulla versione per questa build.

È possibile specificare direttamente le note sulla versione o il percorso di un file di testo semplice.

testers o testersFile

Gli indirizzi email dei tester a cui desideri distribuire le build.

Puoi specificare i tester come un elenco di indirizzi email separati da virgole:

testers="ali@example.com, bri@example.com, cal@example.com"

In alternativa, puoi specificare il percorso di un file contenente un elenco di indirizzi email separati da virgole:

testersFile="/path/to/testers.txt"
groups o groupsFile

I gruppi di tester a cui desideri distribuire le build (vedi Gestisci tester ). I gruppi vengono specificati utilizzando alias di gruppo , che puoi trovare nella scheda Tester nella console Firebase App Distribution.

È possibile specificare i gruppi come elenco di alias di gruppo separati da virgole:

groups="qa-team, android-testers"

In alternativa, puoi specificare il percorso di un file contenente un elenco di alias di gruppo separati da virgole:

groupsFile="/path/to/tester-groups.txt"
stacktrace

Stampa lo stacktrace per le eccezioni utente. Ciò è utile durante il debug dei problemi.

Passaggio 4. Distribuisci la tua app ai tester

  1. Infine, per impacchettare la tua app di test e invitare i tester, costruire gli obiettivi BUILD-VARIANT e appDistributionUpload BUILD-VARIANT con Gradle Wrapper del tuo progetto, dove BUILD-VARIANT è il sapore del prodotto opzionale e il tipo di build che hai configurato nel passaggio precedente. Per ulteriori informazioni sui sapori del prodotto, consultare Configura varianti di build .

    Ad esempio, per distribuire l'app utilizzando la variante di build release , eseguire il comando seguente:

    ./gradlew assembleRelease appDistributionUploadRelease
    

    Oppure, se hai autenticato con il tuo account Google e non hai fornito credenziali nel file di build gradle, includi la variabile FIREBASE_TOKEN :

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew assembleRelease appDistributionUploadRelease
    
  2. È inoltre possibile sovrascrivere i valori impostati nel file build.gradle mediante gli argomenti della riga di comando sotto forma di- --<property-name>=<property-value> . Per esempio:

    • Per caricare una build di debug nella distribuzione delle app:

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="APK"
      
    • Per invitare ulteriori tester o rimuovere i tester esistenti dal progetto Firebase:

      ./gradlew appDistributionAddTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      ./gradlew appDistributionRemoveTesters
          --projectNumber=<project_number>
          --emails="anothertester@email.com, moretesters@email.com"
      

      Una volta che un tester è stato aggiunto al tuo progetto Firebase, puoi aggiungerli alle versioni individuali. I tester che vengono rimossi non avranno più accesso alle versioni nel progetto, ma potrebbero comunque conservare l'accesso alle versioni per una finestra di tempo.

    È inoltre possibile specificare i tester usando --file="/path/to/testers.txt" anziché --emails .

    Le attività di appDistributionAddTesters e appDistributionRemoveTesters accettano anche i seguenti argomenti:

    • projectNumber : il tuo numero di progetto Firebase.

    • serviceCredentialsFile : il percorso del tuo file di credenziali del servizio Google. Questo è lo stesso argomento usato dall'azione di caricamento.

Il plug -in gradle emette i seguenti collegamenti dopo il caricamento di rilascio. Questi collegamenti ti aiutano a gestire i binari e assicurarsi che i tester e altri sviluppatori abbiano la versione giusta:

  • firebase_console_uri - Un collegamento alla console Firebase che mostra una singola versione. Puoi condividere questo link con altri sviluppatori nella tua organizzazione.
  • testing_uri - Un collegamento al rilascio nell'esperienza del tester (APP ALLA nativa Android) che consente ai tester di visualizzare le note di rilascio e installare l'app sul proprio dispositivo. Il tester necessita di accesso al rilascio per utilizzare il collegamento.
  • binary_download_uri - Un link firmato che scarica direttamente e installa l'app binaria (file APK o AAB). Il collegamento scade dopo un'ora.

Una volta distribuita la build, diventa disponibile nella dashboard di distribuzione delle app della console Firebase per 150 giorni (cinque mesi). Quando la build è di 30 giorni dalla scadenza, viene visualizzato un avviso di scadenza sia nella console che nell'elenco delle build del tester sul loro dispositivo di test.

I tester che non sono stati invitati a testare l'app ricevono inviti e -mail per iniziare e i tester esistenti ricevono notifiche e -mail che una nuova build è pronta per il test (leggi la guida di configurazione del tester per le istruzioni su come installare l'app di test). È possibile monitorare lo stato di ciascun tester, sia che abbiano accettato l'invito e se hanno scaricato l'app nella console Firebase.

I tester hanno 30 giorni per accettare un invito a testare l'app prima della scadenza. Quando un invito è 5 giorni dalla scadenza, un avviso di scadenza appare nella console Firebase accanto al tester in un rilascio. Un invito può essere rinnovato in rialzo utilizzando il menu a discesa nella riga del tester.

Prossimi passi