Puoi distribuire le build ai tester utilizzando
fastlane,
una piattaforma open source che automatizza la creazione e il rilascio di app per iOS e Android. Segue semplici istruzioni definite in un Fastfile
. Dopo aver configurato
fastlane e il tuo Fastfile
, puoi integrare App Distribution nella configurazione
di fastlane.
Passaggio 1: Configurare fastlane
Per aggiungere App Distribution alla configurazione di fastlane, esegui questo comando dalla radice del progetto iOS:
fastlane add_plugin firebase_app_distribution
Se il comando ti chiede di scegliere un'opzione, seleziona
Option 3: RubyGems.org
.
Passaggio 2: Autenticarsi con Firebase
Prima di poter utilizzare il plug-in fastlane, devi 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 un altro metodo di autenticazione.
Passaggio 3: Configurare 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 solo se l'app non contiene un file di configurazione Firebase (
GoogleService-Info.plist
): l'ID app Firebase della tua app. Puoi trovare l'ID app nella console Firebase, nella pagina Impostazioni generali.app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path
Il percorso del file
GoogleService-Info.plist
, relativo al percorso del prodotto archiviato. Impostato suGoogleService-Info.plist
per impostazione predefinita.Il file viene utilizzato per ottenere l'ID app Firebase della tua app se il parametro
app
non è specificato.firebase_cli_token
Un token di aggiornamento stampato quando autentichi l'ambiente CI con l'interfaccia a riga di comando Firebase (per saperne di più, leggi Utilizzare l'interfaccia a riga di comando con i sistemi CI).
service_credentials_file
Il percorso del file JSON dell'account di servizio Google. Vedi sopra come autenticarsi utilizzando le credenziali del service account.
ipa_path
Sostituisce
apk_path
(ritirato). Percorso assoluto al file IPA da caricare. Se non specificato, fastlane determina la posizione del file dalla corsia in cui è stato generato.release_notes
release_notes_file
Note di rilascio per questa build.
Puoi specificare direttamente le note di rilascio:
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 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 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 la sezione Gestire i tester). I gruppi vengono specificati utilizzando gli
alias di gruppo , 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 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 di Automated tester.
I dispositivi di test su cui vuoi distribuire le build (fai riferimento a Test automatizzati).
Puoi 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, 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_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.
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 automatizzati.
test_password_resource
Nome della risorsa per il campo della password per l'accesso automatico da utilizzare durante i test automatizzati.
test_non_blocking
Esegui test automatici in modo asincrono. Visita la Console Firebase per visualizzare i risultati dei test automatici.
debug
Un flag booleano. Puoi impostare questo valore su
true
per stampare l'output di debug dettagliato.
Ad esempio:
platform :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
Per rendere disponibile la build ai tester, esegui la 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 saperne di più sui campi disponibili in questo hash, consulta la
documentazione dell'API REST.
Il plug-in fastlane restituisce 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:
- 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 del tester (clip web iOS) 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 binario dell'app (file IPA). Il link scade dopo un'ora.
Dopo aver distribuito la build, questa è disponibile nella dashboard App Distribution della console Firebase per 150 giorni. Quando la build scade tra 30 giorni, nella console e nell'elenco delle build del tester sul dispositivo di test viene visualizzato un avviso di scadenza.
I tester che non sono stati invitati in precedenza a testare l'app ricevono inviti via email per iniziare. I tester esistenti ricevono notifiche email che li informano che una nuova build è pronta per essere testata. Per scoprire come installare l'app di test, consulta l'articolo Configurare il tuo account come 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 l'azione
increment_build_number
.
Il seguente codice 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_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Per scoprire di più su questa funzionalità del plug-in fastlane, consulta Ottenere informazioni sull'ultima release dell'app.
(Facoltativo) Passaggio 4. Gestisci i tester per la distribuzione
Puoi aggiungere e rimuovere tester dal tuo progetto o gruppo utilizzando il file Fastfile
o eseguendo direttamente le azioni di fastlane. L'esecuzione diretta delle azioni
override dei valori impostati in Fastfile
.
Una volta aggiunto un tester al tuo progetto Firebase, puoi aggiungerlo a singole release. I tester rimossi dal tuo progetto Firebase non hanno più accesso alle release del progetto, ma potrebbero mantenere l'accesso alle tue 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_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.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.
(Facoltativo) Passaggio 5. Visualizzare 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,
tra cui informazioni sulla versione dell'app, note di rilascio e ora di creazione. I casi d'uso
includono l'aumento automatico della versione e il riporto delle note di rilascio
della 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 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 solo se l'app non contiene un file di configurazione Firebase ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
Il percorso del file
Il file viene utilizzato per ottenere l'ID app Firebase della tua app se il parametro |
firebase_cli_token
|
Un token di aggiornamento stampato quando autentichi l'ambiente CI con l'interfaccia a riga di comando Firebase (per saperne di più, leggi Utilizzare l'interfaccia a riga di comando con i sistemi CI). |
service_credentials_file
|
Il percorso del file JSON dell'account di servizio Google. Consulta la documentazione precedente per scoprire come eseguire l'autenticazione utilizzando le credenziali del service account. |
service_credentials_json_data
|
Contenuto del file JSON dell'account di servizio Google. Consulta la documentazione precedente per scoprire come eseguire l'autenticazione utilizzando le credenziali del service account. |
debug
|
Un flag booleano. Puoi impostare questo valore su |
Passaggi successivi
Per registrare altri dispositivi manualmente o a livello di programmazione, vedi Registrare dispositivi iOS aggiuntivi.
Scopri le best practice per distribuire app Apple ai tester QA utilizzando CI/CD e fastlane.