Puoi integrare App Distribution nel processo di compilazione di 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 della tua app, in modo da configurare le distribuzioni per diversi tipi di build e varianti della tua app.
Questa guida descrive come distribuire Android App Bundle (AAB) ai tester utilizzando il plug-in Gradle App Distribution.
App Distribution si integra con il servizio di condivisione interna delle app di Google Play per elaborare gli AAB che carichi e pubblicare gli APK ottimizzati per le configurazioni dei dispositivi dei tuoi tester. La distribuzione di AAB ti consente di:
Esegui APK ottimizzati (pubblicati da Google Play) ottimizzati per i dispositivi dei tester.
Scopri ed esegui il debug dei problemi specifici del dispositivo.
Testa le funzionalità di Android App Bundle come Play Feature Delivery e Play Asset Delivery.
Riduci le dimensioni dei download per i tester.
Autorizzazioni obbligatorie
Per caricare AAB su App Distribution, devi collegare la tua app Firebase a un'app in Google Play. Per eseguire queste azioni devi disporre del livello di accesso richiesto.
Se non disponi dell'accesso Firebase necessario, puoi chiedere a un proprietario del progetto Firebase di assegnarti il ruolo applicabile tramite le impostazioni IAM della console Firebase. Se hai domande sull'accesso al tuo progetto Firebase, inclusa la ricerca o l'assegnazione di un proprietario, consulta le domande frequenti su "Autorizzazioni e accesso ai progetti Firebase".
La seguente tabella si applica al collegamento di un'app Firebase a un'app in Google Play, nonché al caricamento di AAB.
Azione nella console Firebase | Autorizzazione IAM obbligatoria | Ruolo o ruoli IAM che includono le autorizzazioni richieste per impostazione predefinita | Ruoli aggiuntivi richiesti |
---|---|---|---|
Collegare un'app Firebase a un'app in Google Play | firebase.playLinks.update
|
Uno dei seguenti ruoli: | Accesso a un account sviluppatore Google Play come Amministratore |
Carica gli AAB su App Distribution | firebaseappdistro.releases.update
|
Uno dei seguenti ruoli: | –– |
Prima di iniziare
Se non l'hai ancora fatto, aggiungi Firebase al tuo progetto Android. Al termine di questo flusso di lavoro, avrai un'app Firebase per Android nel tuo progetto Firebase.
Se non utilizzi altri prodotti Firebase, devi solo creare un progetto e registrare la tua app. Se decidi di utilizzare altri prodotti, assicurati di completare tutti i passaggi descritti in Aggiungere Firebase al tuo progetto Android.
Per creare un collegamento da Firebase a Google Play e caricare AAB, assicurati che la tua app soddisfi i seguenti requisiti:
L'app in Google Play e l'app Firebase per Android sono entrambe registrate con lo stesso nome pacchetto.
L'app in Google Play viene configurata nella dashboard dell'app e distribuita a uno dei canali Google Play (test interno, chiuso, aperto o produzione).
La revisione dell'app in Google Play è stata completata e l'app pubblicata. L'app viene pubblicata se la colonna Stato applicazione mostra uno dei seguenti stati: test interno (non test interno in bozza), test chiuso, test aperto o produzione.
Collega l'app Firebase per Android al tuo account sviluppatore Google Play:
Nella console Firebase, vai alle
, quindi seleziona la scheda Integrazioni. Impostazioni progetto Nella scheda Google Play, fai clic su Collega.
Se hai già dei collegamenti a Google Play, fai clic su Gestisci invece.Segui le istruzioni sullo schermo per attivare l'integrazione di App Distribution e selezionare le app Firebase per Android da collegare a Google Play.
Scopri di più sul collegamento a Google Play.
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.3" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.1.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.3' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.1.1' 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 utilizzi 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: Autenticarsi con Firebase
Prima di poter utilizzare il plug-in Gradle, devi 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 un altro metodo di autenticazione.
Passaggio 3: Configurare le proprietà di distribuzione
Nel file Gradle (a livello di app) del modulo (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, segui queste
istruzioni:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" 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
nelle varianti 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 build | |
---|---|
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 del service account. 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 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 vuoi distribuire le build (vedi
Gestire i tester).
I gruppi vengono specificati utilizzando gli Puoi specificare i gruppi come un elenco separato da virgole di alias di gruppo: groups="qa-team, android-testers" In alternativa, puoi specificare il percorso di un file contenente un elenco separato da virgole di alias di gruppo: groupsFile="/path/to/tester-groups.txt" |
testDevices o testDevicesFile |
I seguenti tipi di distribuzione fanno parte della funzionalità beta di Automated tester. I dispositivi di test a cui vuoi distribuire le build (vedi Test automatizzati). Puoi specificare i dispositivi di test come elenco separato da punto e virgola di specifiche del dispositivo: 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 automatizzati. |
testPassword o testPasswordFile |
La password per l'accesso automatico da utilizzare durante i test automatizzati. 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 automatizzati. |
testPasswordResource |
Nome della risorsa per il campo della password per l'accesso automatico da utilizzare durante i test automatizzati. |
testNonBlocking |
Esegui test automatici in modo asincrono. Visita la Console Firebase per visualizzare i risultati dei test automatici. |
stacktrace
|
Stampa la traccia dello stack per le eccezioni utente. Questo è utile per il debug dei problemi. |
Passaggio 4: Distribuire l'app ai tester
Infine, per creare il pacchetto della tua app di test e invitare i tester, crea i target
BUILD-VARIANT
eappDistributionUploadBUILD-VARIANT
con il wrapper Gradle del tuo progetto, dove BUILD-VARIANT è la variante di prodotto e il tipo di build facoltativi che hai configurato nel passaggio precedente. Per saperne di più sulle varianti di prodotto, consulta Configurare le varianti di build.Ad esempio, per distribuire l'app utilizzando la variante di build
release
, esegui il comando seguente:./gradlew bundleRelease appDistributionUploadRelease
In alternativa, se hai eseguito l'autenticazione 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 bundleRelease appDistributionUploadRelease
Puoi anche ignorare i valori impostati nel file
build.gradle
passando argomenti della riga di comando nel formato--<property-name>=<property-value>
. Ad esempio:Per caricare una build di debug su App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
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 tuo progetto Firebase, puoi aggiungerlo a singole release. I tester rimossi non avranno più accesso alle release del tuo progetto, ma potrebbero comunque mantenere l'accesso alle tue release per un 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 file binari e a garantire 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 del tester (app nativa per Android) che consente ai tester di visualizzare le note di rilascio e installare l'app sul proprio dispositivo. Per utilizzare il link, il tester deve avere accesso alla release.binary_download_uri
: un link firmato che scarica e installa direttamente il binario dell'app (file APK o AAB). Il link scade dopo un'ora.
Una volta distribuita la build, questa diventa disponibile nella dashboard App Distribution della console Firebase per 150 giorni (cinque mesi). Quando la build è a 30 giorni dalla scadenza, viene visualizzato un avviso di scadenza sia nella console sia nell'elenco delle build dei 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 email che li informano che una nuova build è pronta per essere testata (leggi la guida alla configurazione dei tester per istruzioni su come installare l'app di test). Puoi monitorare lo stato di ogni tester, ovvero 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 un invito scade tra 5 giorni, 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 (inclusi screenshot).
Scopri come mostrare avvisi in-app ai tuoi tester quando sono disponibili nuove build della tua app da installare.
Visita il codelab su Android App Bundle per scoprire come distribuire le release di app bundle passo dopo passo.
Scopri le best practice per distribuire app per Android ai tester QA utilizzando CI/CD.