Catch up on highlights from Firebase at Google I/O 2023. Learn more

Distribuisci app iOS ai tester utilizzando Fastlane

Puoi distribuire 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 Fastfile , puoi integrare App Distribution con la tua configurazione fastlane.

Passaggio 1. Imposta la corsia preferenziale

  1. Installa e configura fastlane .

  2. Per aggiungere App Distribution alla tua configurazione fastlane, esegui il seguente comando dalla radice del tuo progetto iOS:

    fastlane add_plugin firebase_app_distribution

    Se il comando ti richiede 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 dall'interfaccia a riga di comando di Firebase se non viene utilizzato nessun altro metodo di autenticazione.

Passo 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 solo se la tua 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 di Firebase, nella pagina Impostazioni generali .

    app: "1:1234567890:ios:0a1b2c3d4e5f67890"
    googleservice_info_plist_path

    Il percorso del tuo file GoogleService-Info.plist , relativo al percorso del prodotto archiviato. Impostato su GoogleService-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 che viene stampato quando autentichi il tuo ambiente CI con l'interfaccia a riga di comando di Firebase (leggi Utilizzare l'interfaccia a riga di comando con i sistemi CI per ulteriori informazioni).

    service_credentials_file

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

    ipa_path

    Sostituisce apk_path (obsoleto). Percorso assoluto del file IPA che desideri caricare. Se non specificato, fastlane determina la posizione del file dalla corsia in cui il file è 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"

    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 semplice 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 (fai riferimento a Gestisci tester ). I gruppi vengono specificati utilizzando alias di gruppo , che puoi cercare nella console di 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

    Un flag booleano. Puoi impostarlo su true per stampare un output di debug dettagliato.

Per 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 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 emette i seguenti collegamenti dopo il caricamento della versione. Questi collegamenti ti aiutano a gestire i file binari e assicurano che i tester e altri sviluppatori dispongano della versione corretta:

  • Un collegamento alla console Firebase che mostra una singola versione. Puoi condividere questo link con altri sviluppatori nella tua organizzazione.
  • Un collegamento alla versione nell'esperienza del tester (clip Web iOS) che consente ai tester di visualizzare le note sulla versione e installare l'app sul proprio dispositivo. Il tester deve accedere alla versione per utilizzare il collegamento.
  • Un collegamento firmato che scarica e installa direttamente il file binario dell'app (file IPA). Il collegamento scade dopo un'ora.

Dopo aver distribuito la tua build, è disponibile nella dashboard di distribuzione app della console Firebase 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 precedentemente invitati a testare l'app ricevono inviti via email per iniziare. I tester esistenti ricevono notifiche e-mail che una nuova build è pronta per il test. Per informazioni su come installare l'app di prova, vedi Configurazione 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 tuo numero di build ogni volta che crei una nuova versione in App Distribution, puoi utilizzare l'azione firebase_app_distribution_get_latest_release e l' azione increment_build_number . 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_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end

Per ulteriori informazioni su questa funzionalità del plug-in fastlane, consulta Ottenere informazioni sull'ultima versione dell'app .

Passaggio 4 (facoltativo). Gestisci i tester per la distribuzione

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

Dopo aver 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 release nel tuo progetto, ma potrebbero mantenere l'accesso alle tue release per un periodo di tempo.

Se hai un numero elevato di tester, dovresti prendere in considerazione l'utilizzo di 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 rapide

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 usando --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 tuo numero di 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 di 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 solo se la tua 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 di Firebase, nella pagina Impostazioni generali .

app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path

Il percorso del tuo file GoogleService-Info.plist , relativo al percorso del prodotto archiviato. Impostato su GoogleService-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 che viene stampato quando autentichi il tuo ambiente CI con l'interfaccia a riga di comando di Firebase (leggi Utilizzare l'interfaccia a riga di comando con i sistemi CI per ulteriori informazioni).

service_credentials_file

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

debug

Un flag booleano. Puoi impostarlo su true per stampare un output di debug dettagliato.

Prossimi passi