Procedure consigliate per la distribuzione di app Android ai tester QA tramite CI/CD

Questo documento introduce le best practice per l'utilizzo di Firebase App Distribution per rendere i flussi di lavoro di test pre-release Android sostenibili e ripetibili in un ambiente CI/CD. Le soluzioni includono Gradle e fastlane, ma per offrirti una flessibilità ancora maggiore includiamo anche soluzioni disponibili tramite la console Firebase, la CLI Firebase e l'API pubblica Firebase App Distribution. Descriviamo anche i limiti di rilascio e tester in modo da poter pianificare in anticipo un'esperienza ottimale.

Se utilizzi anche piattaforme Apple, consulta Best practice per la distribuzione di app Apple ai tester del QA utilizzando CI/CD e fastlane .

Prima di iniziare

Prima di implementare le best practice descritte in questo documento, assicurati di abilitare la distribuzione delle app nella console Firebase per ciascuna app . Se non hai abilitato App Distribution, riceverai un errore 404.

Per abilitare la distribuzione delle app, attenersi alla seguente procedura:

  1. Apri la pagina Distribuzione app nella console Firebase.
  2. Seleziona la tua app Android.
  3. Fare clic su Inizia .

Dato che gli Android App Bundle (AAB) stanno diventando il formato di pacchetto Android più comune, ti consigliamo di impostare la possibilità di distribuire AAB ai tuoi tester collegandoti a Google Play .

Automatizza il flusso di lavoro dei test pre-rilascio utilizzando una pipeline CI/CD

Se desideri automatizzare la creazione e il rilascio di app per i tuoi tester e utilizzi CI/CD, ti consigliamo di utilizzare fastlane o Gradle . Un'altra opzione è utilizzare la CLI Firebase , che ti consente di accedere a un'ampia gamma di prodotti Firebase.

Usa la corsia veloce

Integra la distribuzione delle app nella tua pipeline CI/CD utilizzando fastlane, uno strumento open source che automatizza la creazione e il rilascio di app iOS e Android. Creando e distribuendo automaticamente le tue ultime versioni ai tester, garantisci che i tester dispongano sempre della versione di test più aggiornata della tua app.

Per informazioni su come integrare la distribuzione delle app con fastlane, consulta Distribuire app Android ai tester utilizzando fastlane .

Usa Gradle

Utilizza Gradle per integrare App Distribution nel tuo processo di creazione 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 build.gradle della tua app, che ti consente di configurare distribuzioni per diversi tipi di build e varianti della tua app.

Per informazioni su come integrare la distribuzione delle app con Gradle, consulta Distribuire app Android ai tester utilizzando Gradle .

Utilizza la CLI di Firebase

Utilizza gli strumenti della CLI Firebase forniti da App Distribution per distribuire le build ai tester in modo programmatico. È possibile specificare tester e note di rilascio per una build.

Distribuisci la tua ultima build Android specificando l'ID app Firebase dell'app, aggiungendo facoltativamente una nota di rilascio e un file contenente le email dei tester:

firebase appdistribution:distribute test.aab  \
    --app 1:1234567890:android:0a1b2c3d4e5f67890  \
    --release-notes "Bug fixes and improvements" --testers-file testers.txt

Per ulteriori informazioni sull'utilizzo della CLI Firebase per automatizzare le tue build, vedi Distribuire app Android ai tester utilizzando la CLI Firebase .

Utilizza le credenziali del servizio per autenticarti

Utilizza il plug-in Fastlane di App Distribution, il plug-in Gradle o la CLI Firebase con gli account di servizio. Un account di servizio è un tipo di account Google che rappresenta le applicazioni (in contrapposizione agli utenti). Il tuo sistema CI può utilizzare gli account di servizio per eseguire i carichi di lavoro di distribuzione delle app. Per ulteriori informazioni, consulta Autenticazione con un account di servizio .

Se utilizzi la federazione delle identità del carico di lavoro, puoi generare e utilizzare un file di configurazione delle credenziali anziché una chiave dell'account di servizio.

Tieni presente i limiti di rilascio

App Distribution supporta un massimo di 1.000 versioni per app. Ciò significa che quando superi il limite di rilascio, App Distribution elimina automaticamente le versioni più vecchie che superano il limite. Per informazioni su come gestire i limiti di rilascio, vedi Per quanto tempo sono disponibili i rilasci delle app?

Aggiungi lo stesso set di tester a più versioni

Se desideri aggiungere un numero elevato di tester alle tue versioni, utilizza la funzionalità di gestione dei tester in blocco di App Distribution.

Ti consigliamo di utilizzare i gruppi per aggiungere gli stessi tester a più versioni. Un gruppo funge da elenco di controllo degli accessi; quando rimuovi un tester da un gruppo, perde l'accesso a tutte le versioni distribuite a quel gruppo. Per ulteriori informazioni, consulta Aggiungere e rimuovere tester da un gruppo .

Se hai molti tester da gestire, puoi aggiungerli ed eliminarli in blocco utilizzando la console Firebase. Per automatizzare l'aggiunta e la rimozione dei tester, utilizza la CLI Firebase , fastlane , Gradle o l' API pubblica Firebase App Distribution .

Tieni presente i limiti del tester

App Distribution limita il numero di tester che puoi aggiungere a un progetto Firebase o a un gruppo di App Distribution. Se superi questi limiti, non potrai distribuire la tua app ad altri tester. Per ulteriori informazioni sui limiti dei tester, vedi Sono previsti limiti per l'aggiunta di tester alla mia app?

Consenti ai potenziali tester di registrarsi autonomamente per i test

Per facilitare la distribuzione della tua app a più tester, ti consigliamo di utilizzare i link di invito. Un collegamento di invito è un URL univoco che consente ai tester di inserire i propri indirizzi email per registrarsi per testare un'app. Consentire agli utenti di aggiungersi al tuo elenco di tester di app è un modo semplice per aumentare la tua base di test interna.

I casi d'uso dei collegamenti di invito includono programmi sperimentali aziendali, organizzazioni con grandi team di controllo qualità e gruppi di sviluppatori che desiderano che i singoli clienti siano in grado di controllare l'accesso dei tester.

Ti consigliamo di creare un collegamento di invito per un gruppo. Qualsiasi tester che si iscrive utilizzando il collegamento di invito viene automaticamente aggiunto alle versioni successive.

Per ulteriori informazioni, consulta Creare collegamenti di invito e Aggiungere e rimuovere tester da un gruppo .

Assicurati che i tester stiano testando la versione che ti interessa

Quando viene caricata una nuova versione, i tuoi tester vengono avvisati via email. Per integrare questa notifica, puoi utilizzare le seguenti funzionalità (link di rilascio e avvisi in-app) per assicurarti che i tuoi tester stiano testando la versione specifica dell'app che ti interessa:

  • Collegamenti di rilascio: utilizza questa funzionalità quando desideri condividere una versione specifica con i tester. Per informazioni su come utilizzare i collegamenti alle versioni, consulta Distribuire app Android ai tester utilizzando la console Firebase . Questi collegamenti sono disponibili anche con i nostri strumenti da riga di comando (CLI) Firebase , fastlane e Gradle da utilizzare con i tuoi strumenti di automazione della build.
  • Avvisi in-app: utilizza questi avvisi quando vuoi assicurarti che i tuoi tester stiano testando la versione più recente della tua app. Integrando l'SDK Android di Firebase App Distribution, puoi visualizzare avvisi direttamente all'interno dell'app ai tuoi tester quando sono disponibili nuove build della tua app. Per informazioni su come aggiungere avvisi in-app, vedi Informare i tester sulle nuove build .

Rimuovi automaticamente l'accesso per i tester che lasciano l'azienda

Quando il flusso di test interni CI/CD è attivo e funzionante, devi assicurarti che le persone che lasciano l'azienda non abbiano più accesso alle tue build interne. Per aiutarti a gestire l'accesso dei tester alle build, App Distribution fornisce le seguenti opzioni: