Questa guida descrive come distribuire build AAB ai tester utilizzando fastlane, una piattaforma open source che automatizza la creazione e il rilascio di app per iOS e Android. Questa guida segue le istruzioni definite in un Fastfile. Dopo aver configurato apps.fastlane e il tuo Fastfile, puoi integrare App Distribution con la tua configurazione fastlane.
App Distribution si integra con il servizio di condivisione interna delle app di Google Play per elaborare gli AAB che carichi e pubblicare APK ottimizzati per le configurazioni dei dispositivi dei tuoi tester. La distribuzione degli AAB ti consente di:
Esegui APK ottimizzati (pubblicati da Google Play) per i dispositivi dei tuoi tester.
Scopri ed esegui il debug di problemi specifici dei dispositivi.
Testa le funzionalità degli app bundle, come Play Feature Delivery e Play Asset Delivery.
Riduci le dimensioni dei download per i tester.
Autorizzazioni obbligatorie
Per caricare gli AAB su App Distribution, devi collegare la tua app Firebase a un'app in Google Play. Devi disporre del livello di accesso richiesto per eseguire queste azioni.
Se non disponi dell'accesso Firebase necessario, puoi chiedere a un Project Owner di un progetto Firebase di assegnarti il ruolo applicabile utilizzando le impostazioni IAM della console Firebase. Se hai domande sull'accesso al tuo progetto Firebase, ad esempio su come trovare o assegnare 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 | 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 su App Distribution | firebaseappdistro.releases.update
|
Uno dei seguenti ruoli: | –– |
Prima di iniziare
Se non l'hai già fatto, aggiungi Firebase al tuo progetto Android. Al termine di questo workflow, 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 Aggiungi Firebase al tuo progetto Android.
Apri la pagina App Distribution della console Firebase. Seleziona il tuo progetto Firebase quando richiesto, seleziona la tua app utilizzando il selettore di app e fai clic su Inizia.
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 vengono registrate entrambe con lo stesso nome di 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 app mostra uno dei seguenti stati: test interno (non test interno in versione bozza), test chiuso, test aperto o produzione.
Collega l'app per Android Firebase al tuo account sviluppatore Google Play:
Nella console Firebase, vai a
Impostazioni progetto , quindi seleziona la scheda Integrazioni.Nella scheda Google Play, fai clic su Collega.
Se hai già dei collegamenti a Google Play, fai clic su Gestisci.Segui le istruzioni sullo schermo per attivare l'integrazione di App Distribution e seleziona le app Firebase per Android da collegare a Google Play.
Scopri di più sul collegamento a Google Play.
Passaggio 1: Configura fastlane
Per aggiungere App Distribution alla configurazione di fastlane, esegui questo comando dalla directory principale del tuo progetto Android:
fastlane add_plugin firebase_app_distribution
Se il comando ti chiede di scegliere un'opzione, seleziona
Option 3: RubyGems.org.
Passaggio 2: Autenticati con Firebase
Prima di poter utilizzare il plug-in fastlane, devi eseguire l'autenticazione con il tuo progetto Firebase in uno dei seguenti modi. Per impostazione predefinita, il plug-in fastlane cerca le credenziali dall'interfaccia a riga di comando Firebase se non viene utilizzato un altro metodo di autenticazione.
Passaggio 3: Configura il tuo Fastfile e distribuisci l'app
- In una corsia
./fastlane/Fastfile, aggiungi un bloccofirebase_app_distribution. Utilizza i seguenti parametri per configurare la distribuzione:Parametri firebase_app_distribution appObbligatorio: 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_tokenUn token di aggiornamento che viene stampato quando autentichi l'ambiente CI con l'interfaccia a riga di comando Firebase (per saperne di più, consulta Utilizza l'interfaccia a riga di comando con i sistemi CI).
service_credentials_fileIl percorso del file JSON del tuo account di servizio Google. Consulta la sezione precedente per scoprire come eseguire l'autenticazione utilizzando le credenziali del service account.
android_artifact_typeSpecifica il tipo di file Android (APK o AAB).
android_artifact_pathSostituisce
apk_path(ritirato). Percorso assoluto del file APK o AAB che vuoi caricare. Se non specificato, fastlane determina la posizione del file dalla corsia in cui è stato generato.release_notes
release_notes_fileNote di rilascio per questa build.
Puoi specificare le note di rilascio direttamente:
release_notes: "Text of release notes"
In alternativa, specifica il percorso di un file di testo normale:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_fileGli indirizzi email dei tester che vuoi invitare.
Puoi specificare i tester come elenco separato da virgole di indirizzi email:
testers: "ali@example.com, bri@example.com, cal@example.com"
In alternativa, puoi specificare il percorso di un file di testo normale contenente un elenco separato da virgole di indirizzi email:
testers_file: "/path/to/testers.txt"
groups
groups_fileI gruppi di tester che vuoi invitare (consulta la sezione Gestisci i tester). I gruppi vengono specificati utilizzando gli
alias dei gruppi , che puoi cercare nella console Firebase.Puoi specificare i gruppi come elenco separato da virgole:
groups: "qa-team, trusted-testers"
In alternativa, puoi specificare il percorso di un file di testo normale contenente un elenco separato da virgole di nomi di gruppi:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
I dispositivi di test su cui vuoi eseguire i test dell'agente App Testing.
Puoi specificare i dispositivi di test come un elenco di specifiche dei dispositivi separati da punto e virgola:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait"
In alternativa, puoi specificare il percorso di un file di testo normale contenente un elenco di dispositivi di test separati da punto e virgola:
test_devices_file: "/path/to/test-devices.txt"
test_usernameIl nome utente per l'accesso automatico da utilizzare durante i test dell'agente App Testing.
test_password
test_password_fileLa password per l'accesso automatico da utilizzare durante i test dell'agente App Testing.
In alternativa, puoi specificare il percorso di un file di testo normale contenente una password:
test_password_file: "/path/to/test-password.txt"
test_username_resourceNome della risorsa per il campo del nome utente per l'accesso automatico da utilizzare durante i test dell'agente App Testing.
test_password_resourceNome della risorsa per il campo della password per l'accesso automatico da utilizzare durante i test dell'agente App Testing.
test_non_blockingSe impostato durante l'esecuzione dei test dell'agente App Testing, il comando avvierà i test e poi restituirà immediatamente il risultato anziché attendere il completamento. Per visualizzare i risultati dei test, visita la console Firebase. Se questo flag non è impostato, il comando verrà bloccato fino al completamento dei test e uscirà con un codice di errore se uno dei test non va a buon fine.
debugUn flag booleano. Puoi impostare questo valore su
trueper stampare l'output di debug dettagliato.
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 release caricata. Questo hash è disponibile anche tramite 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 link dopo il caricamento della release. Questi link ti aiutano a gestire i file binari e ad assicurarti che i tester e gli altri sviluppatori abbiano la release corretta:
- Un link alla console Firebase che mostra una singola release. Puoi condividere questo link con altri sviluppatori della tua organizzazione.
- Un link alla release nell'esperienza per i tester (app per Android integrata) 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 poter utilizzare il link.
- Un link firmato che scarica e installa direttamente il file binario dell'app (file APK o AAB). Il link scade dopo un'ora.
Dopo aver distribuito la build, questa sarà disponibile nella dashboard App Distribution 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 suo dispositivo di test.
I tester che non erano stati invitati in precedenza a testare l'app ricevono inviti via email per iniziare. I tester esistenti ricevono notifiche via email che una nuova build è pronta per il test. Per scoprire come installare l'app di test, consulta la guida alla configurazione per i tester. Puoi monitorare lo stato di ogni tester per determinare se ha accettato l'invito e se ha scaricato l'app nella console Firebase.
(Facoltativo) Per incrementare automaticamente il numero build ogni volta che crei una nuova release in App Distribution, puoi utilizzare l'azione firebase_app_distribution_get_latest_release e, ad esempio, il plug-in fastlane increment_version_code.
Il seguente codice fornisce un esempio di come incrementare automaticamente il numero 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 scoprire di più sull'azione firebase_app_distribution_get_latest_release, consulta Ricevi informazioni sull'ultima release della tua app.
(Facoltativo) Passaggio 4. Gestione dei tester per la distribuzione
Puoi aggiungere e rimuovere i tester dal progetto o dal gruppo utilizzando il file Fastfile o eseguendo direttamente le azioni fastlane. L'esecuzione diretta delle azioni
esegue l'override dei valori impostati in Fastfile.
Una volta aggiunto un tester al tuo progetto Firebase, puoi aggiungerlo alle singole release. I tester rimossi dal tuo progetto Firebase non hanno più accesso alle release nel progetto, ma potrebbero conservare l'accesso alle release per un periodo di tempo.
Se hai un numero elevato di tester, ti consigliamo di utilizzare i gruppi.
Utilizza 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_testersEsegui azioni fastlane
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 anziché
--emails.
Le attività firebase_app_distribution_add_testers e firebase_app_distribution_remove_testers accettano anche i seguenti argomenti:
project_number: il numero del tuo progetto Firebase.group_alias(facoltativo): se specificato, i tester vengono aggiunti (o rimossi) al gruppo specificato.service_credentials_file: il percorso del file delle credenziali del servizio Google.firebase_cli_token: token di autenticazione per l'interfaccia a riga di comando Firebase.
service_credentials_file e firebase_cli_token sono gli stessi argomenti utilizzati dall'azione di caricamento.
Passaggio 5 (facoltativo). Ricevi informazioni sull'ultima release della tua app
Puoi utilizzare l'azione firebase_app_distribution_get_latest_release per recuperare informazioni sull'ultima release della tua app in App Distribution, tra cui informazioni sulla versione dell'app, note di rilascio e ora di creazione. I casi d'uso includono l'incremento automatico della versione e il trasferimento delle note di rilascio dalla release precedente.
Il valore restituito dell'azione è un hash che rappresenta l'ultima release. Questo hash è disponibile anche tramite lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]. Per saperne di più 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 l'ambiente CI con l'interfaccia a riga di comando Firebase (per saperne di più, consulta Utilizza l'interfaccia a riga di comando con i sistemi CI). |
service_credentials_file
|
Il percorso del file JSON del tuo account di servizio Google. Consulta il parametro precedente per scoprire come eseguire l'autenticazione utilizzando le credenziali del service account. |
debug
|
Un flag booleano. Puoi impostare questo valore su |
Passaggi successivi
Implementa il feedback in-app per raccogliere feedback dai tester sulla tua app (inclusi gli screenshot).
Scopri come mostrare avvisi in-app ai tester quando sono disponibili nuove build della tua app da installare.
Scopri le best practice per distribuire app per Android ai tester QA utilizzando CI/CD.