Distribuisci le app Android ai tester utilizzando fastlane

Questa guida descrive come distribuire le build AAB ai tester utilizzando fastlane , una piattaforma open source che automatizza la creazione e il rilascio di app iOS e Android. Segue semplici istruzioni definite in un Fastfile . Dopo aver configurato fastlane e Fastfile , puoi integrare App Distribution con la configurazione fastlane.

App Distribution si integra con il servizio di condivisione app interno di Google Play per elaborare gli AAB caricati e fornire APK ottimizzati per le configurazioni dei dispositivi dei tester. La distribuzione degli AAB consente di effettuare le seguenti operazioni:

  • Esegui APK ottimizzati (forniti da Google Play) ottimizzati per i dispositivi dei tuoi tester.

  • Scopri ed esegui il debug di problemi specifici del dispositivo.

  • Prova le funzionalità dell'app bundle come Play Feature Delivery e Play Asset Delivery .

  • Riduci la dimensione dei download per i tuoi tester.

Autorizzazioni richieste

Per caricare AAB su App Distribution, devi collegare la tua app Firebase a un'app in Google Play . È necessario disporre del livello di accesso richiesto per eseguire queste azioni.

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 tabella seguente 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 richiesta Ruoli IAM che includono le autorizzazioni richieste per impostazione predefinita Ruoli aggiuntivi richiesti
Collega 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 nella distribuzione delle app firebaseappdistro.releases.update Uno dei seguenti ruoli: ––

Prima di iniziare

  1. Se non l'hai già fatto, aggiungi Firebase al tuo progetto Android . Al termine di questo flusso di lavoro, avrai un'app Android Firebase nel tuo progetto Firebase.

    Se non utilizzi altri prodotti Firebase, devi solo creare un progetto e registrare la tua app. Se decidi di utilizzare prodotti aggiuntivi, assicurati di completare tutti i passaggi in Aggiungere Firebase al tuo progetto Android .

  2. Per creare un collegamento 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 utilizzando lo stesso nome di pacchetto.

    • L'app in Google Play viene configurata nel dashboard dell'app e distribuita in uno dei percorsi di Google Play (test interno, test chiuso, test aperto o produzione).

    • La revisione dell'app su Google Play è completa e l'app è pubblicata. La tua app viene pubblicata se nella colonna Stato app viene visualizzato uno dei seguenti stati: Test interno (non Test interno bozza), Test chiuso, Test aperto o Produzione.

  3. Collega la tua app Android Firebase al tuo account sviluppatore Google Play:

    1. Nella console Firebase, vai al tuo Impostazioni progetto , quindi selezionare la scheda Integrazioni .

    2. Nella scheda Google Play , fai clic su Collegamento .
      Se disponi già di collegamenti a Google Play, fai clic su Gestisci .

    3. Segui le istruzioni visualizzate sullo schermo per abilitare l'integrazione di App Distribution e seleziona quali app Android Firebase collegare a Google Play.

    Ulteriori informazioni sul collegamento a Google Play .

Passaggio 1. Configura la corsia veloce

  1. Installa e configura fastlane .

  2. Per aggiungere App Distribution alla configurazione Fastlane, esegui il seguente comando dalla root del tuo progetto Android:

    fastlane add_plugin firebase_app_distribution

    Se il comando ti richiede un'opzione, seleziona Option 3: RubyGems.org .

Passaggio 2. Autenticarsi con Firebase

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

Passaggio 3. Configura il tuo Fastfile e distribuisci la tua app

  1. In una corsia ./fastlane/Fastfile , aggiungi un blocco firebase_app_distribution . Utilizzare i seguenti parametri per configurare la distribuzione:
    parametri firebase_app_distribution
    app

    Obbligatorio : l'ID app Firebase della tua app. Puoi trovare l'ID app nella console Firebase, nella pagina Impostazioni generali .

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

    Un token di aggiornamento che viene stampato quando autentichi il tuo ambiente CI con la CLI Firebase (leggi Utilizzare la CLI con i sistemi CI per ulteriori informazioni).

    service_credentials_file

    Il percorso del file json del tuo account di servizio Google. Vedi sopra per informazioni su come eseguire l'autenticazione utilizzando le credenziali dell'account di servizio .

    android_artifact_type

    Specifica il tipo di file Android (APK o AAB).

    android_artifact_path

    Sostituisce apk_path (obsoleto). Percorso assoluto del file APK o AAB che desideri caricare. Se non specificato, fastlane determina la posizione del file dalla corsia in cui è stato generato il file.

    release_notes
    release_notes_file

    Note sulla versione per questa build.

    È possibile specificare direttamente le note di rilascio:

    release_notes: "Text of release notes"

    Oppure specifica il percorso di un file di testo semplice:

    release_notes_file: "/path/to/release-notes.txt"
    testers
    testers_file

    Gli indirizzi email dei tester che desideri invitare.

    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 di testo contenente un elenco di indirizzi email separati da virgole:

    testers_file: "/path/to/testers.txt"
    groups
    groups_file

    I gruppi di tester che desideri invitare (consulta Gestisci tester ). I gruppi vengono specificati utilizzando alias di gruppo , che puoi cercare nella console Firebase.

    È possibile specificare i gruppi come elenco separato da virgole:

    groups: "qa-team, trusted-testers"

    In alternativa, puoi specificare il percorso di un file di testo semplice contenente un elenco di nomi di gruppi separati da virgole:

    groups_file: "/path/to/groups.txt"
    debug

    Una bandiera booleana. È possibile impostarlo su true per stampare un output di debug dettagliato.

    test_devices
    test_devices_file

    I seguenti tipi di distribuzione fanno parte della funzionalità beta del tester automatizzato .

    I dispositivi di test a cui desideri distribuire le build (fai riferimento a Test automatizzati ).

    È possibile specificare i dispositivi di test come elenco di dispositivi di test separati da punto e virgola:

    test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

    In alternativa, è possibile specificare il percorso di un file di testo contenente un elenco di dispositivi di test separati da punto e virgola:

    test_devices_file: "/path/to/test-devices.txt"
    test_username

    Il nome utente per l'accesso automatico da utilizzare durante i test automatizzati .

    test_password
    test_password_file

    La password per l'accesso automatico da utilizzare durante i test automatizzati .

    Oppure puoi specificare il percorso di un file di testo semplice contenente una password:

    test_password_file: "/path/to/test-password.txt"
    test_username_resource

    Nome risorsa per il campo nome utente per l'accesso automatico da utilizzare durante i test automatizzati .

    test_password_resource

    Nome risorsa per il campo password per l'accesso automatico da utilizzare durante i test automatizzati .

    test_non_blocking

    Esegui test automatizzati in modo asincrono. Visita la console Firebase per i risultati dei test automatici.

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(task: "bundle", ...)
        # build_android_app is a built-in fastlane action.
        release = firebase_app_distribution(
            app: "1:123456789:android:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!",
            android_artifact_type: "AAB"
        )
    end
end

Per rendere la build disponibile ai tester, esegui la tua corsia:

fastlane <lane>

Il valore restituito dell'azione è un hash che rappresenta la versione caricata. Questo hash è disponibile anche utilizzando lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] . Per ulteriori informazioni sui campi disponibili in questo hash, consulta la documentazione dell'API REST .

Il plug-in fastlane genera 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:

  • Un collegamento alla console Firebase che mostra una singola versione. Puoi condividere questo collegamento con altri sviluppatori nella tua organizzazione.
  • 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.
  • Un collegamento firmato che scarica e installa direttamente il file binario dell'app (file APK o AAB). Il collegamento scade dopo un'ora.

Dopo aver distribuito la build, questa sarà disponibile nella dashboard Distribuzione app della console Firebase per 150 giorni. Quando mancano 30 giorni alla scadenza della build, viene visualizzato un avviso di scadenza nella console e nell'elenco delle build del tester sul dispositivo di test.

I tester che non sono stati precedentemente invitati a testare l'app ricevono inviti via email per iniziare. I tester esistenti ricevono notifiche via email che una nuova build è pronta per essere testata. Per informazioni su come installare l'app di prova, consulta la guida alla configurazione del tester . Puoi monitorare lo stato di ciascun tester per determinare se ha accettato l'invito e se ha scaricato l'app nella console Firebase.

(Facoltativo) Per incrementare automaticamente il numero di build ogni volta che crei una nuova versione in App Distribution, puoi utilizzare l' azione firebase_app_distribution_get_latest_release e, ad esempio, il plugin fastlane increment_version_code . Il codice seguente fornisce un esempio di come incrementare automaticamente il numero di build:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

Per ulteriori informazioni sull'azione firebase_app_distribution_get_latest_release , vedi Ottenere informazioni sull'ultima versione della tua app .

Passaggio 4 (facoltativo). Gestione dei tester per la distribuzione

Puoi aggiungere e rimuovere tester dal tuo progetto o gruppo utilizzando il file Fastfile o eseguendo direttamente le azioni fastlane. L'esecuzione delle azioni sovrascrive direttamente i valori impostati nel Fastfile .

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

Se hai un gran numero di tester dovresti prendere in considerazione l'utilizzo dei gruppi.

Usa Fastfile

# Use lanes to add or remove testers from a project.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) add testers to this group
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) remove testers from this group only
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

Esegui azioni sulla corsia veloce

fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"

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

Le attività firebase_app_distribution_add_testers e firebase_app_distribution_remove_testers accettano anche i seguenti argomenti:

  • project_name : il numero del tuo progetto Firebase.
  • group_alias (facoltativo): se specificato, i tester vengono aggiunti (o rimossi dal) gruppo specificato.
  • service_credentials_file : il percorso del file delle credenziali del servizio Google.
  • firebase_cli_token : token di autenticazione per la CLI Firebase.

service_credentials_file e firebase_cli_token sono gli stessi argomenti utilizzati dall'azione di caricamento.

Passaggio 5 (facoltativo). Ottieni informazioni sull'ultima versione della tua app

Puoi utilizzare l'azione firebase_app_distribution_get_latest_release per recuperare informazioni sull'ultima versione della tua app in App Distribution, incluse informazioni sulla versione dell'app, note sulla versione e ora di creazione. I casi d'uso includono l'aumento automatico della versione e il trasferimento delle note di rilascio dalla versione precedente.

Il valore restituito dell'azione è un hash che rappresenta l'ultima versione. Questo hash è disponibile anche utilizzando lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] . Per ulteriori informazioni sui campi disponibili in questo hash, consulta la documentazione dell'API REST .

Parametri

parametri firebase_app_distribution_get_latest_release
app

Obbligatorio : l'ID app Firebase della tua app. Puoi trovare l'ID app nella console Firebase, nella pagina Impostazioni generali .

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

Un token di aggiornamento che viene stampato quando autentichi il tuo ambiente CI con la CLI Firebase (leggi Utilizzare la CLI con i sistemi CI per ulteriori informazioni).

service_credentials_file

Il percorso del file json del tuo account di servizio Google. Vedi sopra per informazioni su come eseguire l'autenticazione utilizzando le credenziali dell'account di servizio .

debug

Una bandiera booleana. È possibile impostarlo su true per stampare un output di debug dettagliato.

Prossimi passi