Puoi distribuire le build 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 il Fastfile, puoi integrare App Distribution con la configurazione di fastlane.
Passaggio 1: configura fastlane
Per aggiungere App Distribution alla configurazione di fastlane, esegui il seguente comando dalla radice del progetto iOS:
fastlane add_plugin firebase_app_distribution
Se il comando ti chiede di selezionare un'opzione, scegli
Option 3: RubyGems.org.
Passaggio 2: autenticati 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 di Firebase CLI se non viene utilizzato un altro metodo di autenticazione.
Passaggio 3: configura il Fastfile e distribuisci l'app
- In una corsia
./fastlane/Fastfile, aggiungi unfirebase_app_distributionblocco. Utilizza i seguenti parametri per configurare la distribuzione:Parametri di firebase_app_distribution appObbligatorio 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 Firebase console, nella pagina Impostazioni generali.app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_pathIl percorso del file
GoogleService-Info.plist, relativo al percorso del prodotto archiviato. Per impostazione predefinita, è impostato suGoogleService-Info.plist.Il file viene utilizzato per ottenere l'ID app Firebase della tua app se il parametro
appnon è specificato.firebase_cli_tokenUn token di aggiornamento stampato quando autentichi l'ambiente CI con la Firebase CLI (per saperne di più, consulta la sezione Utilizzare l'interfaccia a riga di comando con i sistemi CI ).
service_credentials_fileIl percorso del file JSON del service account Google. Consulta la sezione precedente per scoprire come autenticarti utilizzando le credenziali dell'account di servizio.
ipa_pathSostituisce
apk_path(deprecato). Percorso assoluto del file IPA 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, puoi specificare 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 un elenco di indirizzi email separato 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 separato da virgole di indirizzi email:
testers_file: "/path/to/testers.txt"
groups
groups_fileI gruppi di tester che vuoi invitare (consulta la sezione Gestire i tester). I gruppi vengono specificati utilizzando gli
alias dei gruppi , che puoi cercare nella Firebase console.Puoi specificare i gruppi come un 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 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_resourceIl nome della risorsa per il campo del nome utente per l'accesso automatico da utilizzare durante i test dell'agente App Testing.
test_password_resourceIl nome 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 verrà restituito immediatamente 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 verrà chiuso con un codice di errore se uno dei test non va a buon fine.
debugUn flag booleano. Puoi impostarlo su
trueper 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 la build disponibile 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 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 del tester (clip web iOS) che consente ai tester di visualizzare le note di rilascio e installare l'app sul proprio dispositivo. Per utilizzare il link, il tester deve avere accesso alla release.
- Un link firmato che scarica e installa direttamente il file binario dell'app (file IPA). Il link scade dopo un'ora.
Dopo aver distribuito la build, questa sarà disponibile nella App Distribution dashboard della Firebase console per 150 giorni. Quando mancano 30 giorni alla scadenza della build, 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 via email che indicano che una nuova build è pronta per il test. Per scoprire come installare l'app di test, consulta la sezione Configurare l'ambiente come tester. Nella Firebase console puoi monitorare lo stato di ogni tester per determinare se ha accettato l'invito e se ha scaricato l'app.
(Facoltativo) Per incrementare automaticamente il numero build ogni volta che crei
una nuova release in App Distribution, puoi utilizzare l'
firebase_app_distribution_get_latest_release azione e l'
increment_build_number azione.
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_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Per saperne di più su questa funzionalità del plug-in fastlane, consulta la sezione Ottenere informazioni sull'ultima release dell'app.
(Facoltativo) Passaggio 4: gestisci i tester per la distribuzione
Puoi aggiungere e rimuovere tester dal progetto o dal gruppo utilizzando il file Fastfile o eseguendo direttamente le azioni di fastlane. L'esecuzione diretta delle azioni sostituisce i valori impostati nel file 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 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_testersEsegui le azioni di 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 al gruppo specificato (o rimossi da esso).service_credentials_file: il percorso del file delle credenziali del servizio Google.firebase_cli_token: il token di autenticazione per Firebase CLI.
service_credentials_file e firebase_cli_token sono gli stessi argomenti utilizzati dall'azione di caricamento.
(Facoltativo) Passaggio 5: ottieni informazioni sull'ultima release dell'app
Puoi utilizzare l'azione firebase_app_distribution_get_latest_release per recuperare informazioni sull'ultima release dell'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'incremento automatico della versione e il riporto 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 saperne di più sui campi disponibili in questo hash, consulta la
documentazione dell'API REST.
Parametri
| Parametri di 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 la Firebase CLI (per saperne di più, consulta la sezione Utilizzare l'interfaccia a riga di comando con i sistemi CI ). |
service_credentials_file
|
Il percorso del file JSON del service account Google. Consulta la documentazione precedente per scoprire come autenticarti 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 autenticarti utilizzando le credenziali del service account. |
debug
|
Un flag booleano. Puoi impostarlo su |
Passaggi successivi
Per registrare altri dispositivi manualmente o a livello di programmazione, consulta la sezione Registrare altri dispositivi iOS.
Scopri le best practice per distribuire le app Apple ai tester QA utilizzando CI/CD e fastlane.