Puoi integrare App Distribution nel tuo processo di compilazione Android utilizzando il plug-in Gradle App Distribution. Il plug-in ti consente di specificare i tester e le note di rilascio nel file Gradle dell'app, in modo da configurare le distribuzioni per diversi tipi di build e varianti dell'app.
Questa guida descrive come distribuire gli APK ai tester utilizzando il App Distribution plug-in Gradle.
Prima di iniziare
Se non lo 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 altri prodotti in futuro, assicurati di completare tutti i passaggi nella pagina collegata sopra.
Passaggio 1: Configurare il progetto Android
Nel file Gradle a livello di directory principale (a livello di progetto) (
<project>/build.gradle.kts
o<project>/build.gradle
), aggiungi il plug-in Gradle App Distribution 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.2" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.0.0" 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.2' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.0.0' apply false }
Nel file Gradle del modulo (a livello di app) (di solito
<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
), aggiungi il plug-in Gradle App Distribution: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' }
Se ti trovi dietro un proxy o un firewall aziendale, aggiungi la seguente proprietà di sistema Java che consente a App Distribution di caricare le distribuzioni su Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Passaggio 2: Esegui l'autenticazione con Firebase
Prima di poter utilizzare il plug-in Gradle, devi prima autenticarti nel 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: Configurare le proprietà di distribuzione
Nel file Gradle del modulo (a livello di app) (di solito <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, segui 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 varianti di prodotto.
Ad esempio, per distribuire le build debug
e release
nei gusti di prodotto "demo" e "full", 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" } } } // ... }
Utilizza i seguenti parametri per configurare la distribuzione:
App Distribution Parametri di compilazione | |
---|---|
appId
|
L'ID app Firebase della tua app. Obbligatorio solo se non hai installato il plug-in Gradle dei servizi Google. Puoi trovare l'ID app nel
file 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
|
artifactPath
|
Percorso assoluto del file APK o AAB da caricare. |
releaseNotes o releaseNotesFile |
Note di rilascio per questa build. Puoi specificare direttamente le note di rilascio o il percorso di un file di testo normale. |
testers o testersFile |
Gli indirizzi email dei tester a cui vuoi distribuire le build. Puoi specificare i tester come 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 vuoi distribuire le build (vedi
Gestire i tester).
I gruppi vengono specificati utilizzando Puoi specificare i gruppi come un 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" |
testDevices o testDevicesFile |
I seguenti tipi di distribuzione fanno parte della funzionalità beta del tester automatico. I dispositivi di test su cui vuoi distribuire le build (vedi Test automatici). Puoi specificare i dispositivi di test come elenco di specifiche del dispositivo separate da un punto e virgola: testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" In alternativa, puoi specificare il percorso di un file contenente un elenco di specifiche del dispositivo separate da punto e virgola: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Il nome utente per l'accesso automatico da utilizzare durante i test automatici. |
testPassword o testPasswordFile |
La password per l'accesso automatico da utilizzare durante i test automatici. In alternativa, puoi specificare il percorso di un file di testo normale contenente una password: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Nome della risorsa per il campo del nome utente per l'accesso automatico da utilizzare durante i test automatici. |
testPasswordResource |
Nome della risorsa per il campo della password per l'accesso automatico da utilizzare durante i test automatici. |
testNonBlocking |
Esegui test automatici in modo asincrono. Per i risultati dei test automatici, visita la Console Firebase. |
stacktrace
|
Stampa lo stack trace per le eccezioni utente. Questo è utile per risolvere i problemi di debug. |
Passaggio 4: Distribuire l'app ai tester
Infine, per pacchettizzare l'app di test e invitare i tester, compila i target
BUILD-VARIANT
eappDistributionUploadBUILD-VARIANT
con il wrapper Gradle del progetto, dove BUILD-VARIANT è il optional product flavor 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 l'app utilizzando la variante di compilazione
release
, esegui il seguente comando:./gradlew assembleRelease appDistributionUploadRelease
In alternativa, se hai eseguito l'autenticazione con il tuo Account Google e non hai fornito le credenziali nel file di compilazione Gradle, includi la variabile
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
Puoi anche sostituire i valori impostati nel file
build.gradle
passando gli argomenti della riga di comando sotto forma di--<property-name>=<property-value>
. Ad esempio:Per caricare una build di debug su App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
Per invitare altri tester o rimuovere quelli 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 progetto Firebase, puoi aggiungerlo alle singole release. I tester rimossi non avranno più accesso alle release del tuo progetto, ma potrebbero comunque conservare l'accesso alle release per un determinato periodo di tempo.
Puoi anche specificare i tester utilizzando
--file="/path/to/testers.txt"
anziché--emails
.Le attività
appDistributionAddTesters
eappDistributionRemoveTesters
accettano anche i seguenti argomenti:projectNumber
: il numero del tuo progetto Firebase.serviceCredentialsFile
: il percorso del file delle credenziali del servizio Google. Si tratta dello stesso argomento utilizzato dall'azione di caricamento.
Il plug-in Gradle genera i seguenti link dopo il caricamento della release. Questi link ti aiutano a gestire i binari e assicurano che i tester e gli altri sviluppatori dispongano della release corretta:
firebase_console_uri
: un link alla console Firebase che mostra una singola release. Puoi condividere questo link con altri sviluppatori della tua organizzazione.testing_uri
: un link alla release nell'esperienza dei tester (app nativa per Android) che consente ai tester di visualizzare le note di rilascio e installare l'app sul proprio dispositivo. Il tester deve avere accesso alla release per utilizzare il link.binary_download_uri
: un link firmato che scarica e installa direttamente il file binario dell'app (file APK o AAB). Il link scade dopo un'ora.
Una volta distribuita, la build diventa disponibile nella dashboard App Distribution della console Firebase per 150 giorni (cinque mesi). Quando manca 1 mese alla scadenza della build, viene visualizzata una notifica di scadenza sia nella console sia nell'elenco delle build del tester sul suo 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 indicano che una nuova build è pronta per il test (leggi la guida alla configurazione dei tester per istruzioni su come installare l'app di test). 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 di tempo per accettare un invito a testare l'app prima che scada. Quando manca 1 settimana alla scadenza di un invito, nella console Firebase viene visualizzata una notifica di scadenza accanto al tester di una release. Un invito può essere rinnovato inviandolo di nuovo utilizzando il menu a discesa nella riga del tester.
Passaggi successivi
Implementa il feedback in-app per consentire ai tester di inviare facilmente feedback sulla tua app (screenshot inclusi).
Scopri come mostrare avvisi in-app ai tester quando sono disponibili nuove build dell'app da installare.
Visita il codelab Android App Bundle per scoprire come distribuire le release dell'app bundle passo passo.
Scopri le best practice per distribuire le app per Android ai tester QA utilizzando CI/CD.