Questo documento descrive come distribuire le build APK ai tester utilizzando
fastlane,
una piattaforma open source che automatizza la creazione e il rilascio di app per iOS e Android. Questo documento segue le istruzioni definite in un Fastfile
. Dopo aver configurato la corsia Fast e Fastfile
, puoi integrare App Distribution con la configurazione delle corsie Fast.
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 l'app. Tuttavia, se in futuro decidi di utilizzare altri prodotti, assicurati di completare tutti i passaggi nella pagina di cui sopra.
Passaggio 1: Configurare fastlane
Per aggiungere App Distribution alla configurazione di Fastlane, esegui il seguente comando dalla radice del progetto Android:
fastlane add_plugin firebase_app_distribution
Se il comando ti chiede un'opzione, seleziona
Option 3: RubyGems.org
.
Passaggio 2: Autenticazione 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: Configurare il file Fastfile e distribuire l'app
- In una corsia
./fastlane/Fastfile
, aggiungi un bloccofirebase_app_distribution
. Utilizza i seguenti parametri per configurare la distribuzione:Parametri firebase_app_distribution app
Obbligatorio: l'ID dell'app Firebase dell'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 stampato quando autentichi l'ambiente CI con l'interfaccia a riga di comando Firebase (leggi Utilizzare l'interfaccia a riga di comando con i sistemi CI per saperne di più).
service_credentials_file
Il percorso del file JSON dell'account di servizio Google. Vedi sopra per informazioni su come eseguire l'autenticazione mediante le credenziali dell'account di servizio.
android_artifact_type
Specifica il tipo di file Android (APK o AAB).
android_artifact_path
Sostituisce
apk_path
(deprecato). Percorso assoluto al file APK o AAB che vuoi caricare. Se non viene specificato, fastlane determina la posizione del file dalla corsia in cui è stato generato.release_notes
release_notes_file
Note di rilascio di 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_file
Gli indirizzi email dei tester che vuoi invitare.
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 di testo normale contenente un elenco di indirizzi email separati da virgole:
testers_file: "/path/to/testers.txt"
groups
groups_file
I gruppi di tester che vuoi invitare (consulta Gestire i tester). I gruppi vengono specificati utilizzando gli
alias di gruppo , che puoi cercare nella console Firebase.Puoi specificare i gruppi sotto forma di elenco separato da virgole:
groups: "qa-team, trusted-testers"
In alternativa, puoi specificare il percorso di un file di testo normale contenente un elenco di nomi di gruppi separati da virgole:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
I seguenti tipi di distribuzione fanno parte della funzionalità beta Tester automatici.
I dispositivi di test a cui vuoi distribuire le build (consulta Test automatici).
Puoi specificare i dispositivi di test come elenco di dispositivi di test separati da un punto e virgola:
test_devices: "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 di testo normale contenente un elenco di dispositivi di test separati da due punti:
test_devices_file: "/path/to/test-devices.txt"
test_username
Il nome utente per l'accesso automatico da utilizzare durante i test automatici.
test_password
test_password_file
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:
test_password_file: "/path/to/test-password.txt"
test_username_resource
Nome della risorsa per il campo del nome utente per l'accesso automatico da utilizzare durante i test automatici.
test_password_resource
Nome della risorsa per il campo password per l'accesso automatico da utilizzare durante i test automatici.
test_non_blocking
Esegui test automatici in modo asincrono. Per i risultati dei test automatici, visita la Console Firebase.
debug
Un flag booleano. Puoi impostarlo su
true
per stampare un output di debug dettagliato.
platform :android do desc "My awesome app" lane :distribute do build_android_app(...) # 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!" ) 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 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 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:
- Un link alla console Firebase che mostra una singola release. Puoi condividere questo link con altri sviluppatori nella tua organizzazione.
- Un link alla release nell'esperienza dei tester (app nativa per Android) che consente ai tester di visualizzare le note di rilascio e di installare l'app sul proprio dispositivo. Il tester deve avere accesso alla release per 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 è disponibile nella dashboard App Distribution della console Firebase per 150 giorni. Quando manca 1 mese alla scadenza della build, viene visualizzata una notifica di scadenza nella console e nell'elenco delle build del tester sul suo dispositivo di test.
I tester che non sono stati invitati in precedenza a testare l'app ricevono email con gli inviti per iniziare. I tester esistenti ricevono notifiche via email che li informano che una nuova build è pronta per il test. Per scoprire come installare l'app di test, consulta la guida alla configurazione del 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 di 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 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 scoprire di più sull'azione firebase_app_distribution_get_latest_release
, consulta Ottenere informazioni sull'ultima release dell'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 diretta delle azioni aggira i valori impostati in Fastfile
.
Una volta aggiunto un tester al progetto Firebase, puoi aggiungerlo alle singole release. I tester rimossi dal tuo progetto Firebase non hanno più accesso alle release del progetto, ma potrebbero conservare l'accesso alle release per un determinato 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_testers
Esegui 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_name
: il numero del tuo progetto Firebase.- (Facoltativo)
group_alias
: se specificato, i tester vengono aggiunti o rimossi dal gruppo specificato. service_credentials_file
: il percorso del file delle credenziali dei servizi 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
argumenti utilizzati dall'azione di caricamento.
(Facoltativo) Passaggio 5. Ottenere informazioni sull'ultima release dell'app
Puoi utilizzare l'azione firebase_app_distribution_get_latest_release
per recuperare informazioni sull'ultima release della tua app in App Distribution,
incluse le informazioni sulla versione dell'app, le note di rilascio e l'ora di creazione. I casi d'uso includono l'aumento 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 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 stampato quando autentichi il tuo ambiente CI con l'interfaccia a riga di comando Firebase (leggi Utilizzare l'interfaccia a riga di comando con sistemi CI per ulteriori informazioni). |
service_credentials_file
|
Il percorso del file JSON dell'account di servizio Google. Vedi sopra per informazioni su come eseguire l'autenticazione mediante le credenziali dell'account di servizio. |
debug
|
Un flag booleano. Puoi impostare questa opzione su |
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 per l'installazione nuove build della tua app.
Scopri le best practice per distribuire le app per Android ai tester QA utilizzando CI/CD.