Avvisa i tester sulle nuove versioni della tua app con l'SDK iOS di Firebase App Distribution - Codelab

1. Panoramica

Benvenuto nell'integrazione dell'SDK di distribuzione dell'app Firebase nel codelab della tua app iOS. In questo codelab aggiungerai l'SDK App Distribution alla tua app per visualizzare avvisi in-app ai tuoi tester quando saranno disponibili per il download nuove build. Imparerai come utilizzare sia una configurazione di base che una configurazione personalizzata per consentire ai tuoi tester di accedere per ricevere gli aggiornamenti. Quindi invierai una nuova versione a App Distribution e attiverai un avviso di nuova build direttamente nell'app.

Cosa imparerai

  • Come utilizzare App Distribution per distribuire un'app pre-release ai tester dal vivo
  • Come integrare l'SDK iOS di App Distribution nella tua app
  • Come avvisare un tester quando è disponibile una nuova build pre-release pronta per l'installazione
  • Come personalizzare l'SDK per adattarlo alle tue esigenze di test specifiche

Di cosa avrai bisogno

  • Xcode 12 (o successivo)
  • CocoaPods 1.9.1 (o successiva)
  • Un account Apple Developer per la distribuzione Ad Hoc
  • Un dispositivo iOS fisico per i test. (L' app del simulatore iOS funzionerà per la maggior parte del codelab, ma i simulatori non possono scaricare le versioni.)

Come utilizzerai questo tutorial?

Leggetelo solo fino in fondo Leggilo e completa gli esercizi

Come valuteresti la tua esperienza con la creazione di app iOS?

Novizio Intermedio Competente

2. Crea un progetto della console Firebase

Aggiungi un nuovo progetto Firebase

  1. Accedi a Firebase.
  2. Nella console Firebase, fai clic su Aggiungi progetto, quindi assegna il nome al progetto "Firebase Codelab".

Non è necessario abilitare Google Analytics per questo progetto.

  1. Fare clic su Crea progetto .

Aggiungi l'app a Firebase

Segui la documentazione per registrare la tua app con Firebase. Utilizza "com.google.firebase.codelab.AppDistribution.<tuo_nome>" come ID pacchetto iOS.

Quando richiesto, scarica il file GoogleService-Info.plist del tuo progetto. Ne avrai bisogno più tardi.

3. Ottieni il progetto di esempio

Scarica il codice

Inizia clonando il progetto di esempio.

git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git

Se non hai git installato, puoi anche scaricare il progetto di esempio dalla sua pagina GitHub o facendo clic su questo collegamento .

Scarica le dipendenze e apri il progetto in Xcode

  1. Apri il Podfile nella stessa directory
cd firebase-appdistribution-ios/start
Open Podfile
  1. Aggiungi la seguente riga al tuo podfile:

Podfile

pod 'Firebase/AppDistribution'

Esegui pod update nella directory del progetto e apri il progetto in Xcode.

pod install --repo-update
xed .

Aggiorna l'identificatore del pacchetto in modo che corrisponda alla tua app Firebase

Nel menu a sinistra, fai doppio clic su AppDistributionExample. Quindi, individua la scheda Generale e modifica l'identificatore del pacchetto in modo che corrisponda all'identificatore del pacchetto della tua app Firebase, che puoi trovare nelle impostazioni del progetto . Dovrebbe essere "com.google.firebase.codelab.AppDistribution.<tuo_nome>"

Aggiungi Firebase alla tua app

Individua il file GoogleService-Info.plist scaricato in precedenza nel tuo file system e trascinalo nella radice del progetto Xcode. Puoi anche scaricare questo file in qualsiasi momento dalla pagina delle impostazioni del tuo progetto.

3cf9290805e7fdab.png

Nel file AppDistributionExample/AppDelegate.swift importa Firebase nella parte superiore del file

AppDistributionExample/AppDelegate.swift

import Firebase

E nel metodo didFinishLaunchingWithOptions aggiungi una chiamata per configurare Firebase.

AppDistributionExample/AppDelegate.swift

FirebaseApp.configure()

4. Configura avvisi di nuove build in-app con l'SDK di App Distribution

In questo passaggio, aggiungerai l'SDK Firebase App Distribution alla tua app e visualizzerai avvisi in-app ai tuoi tester quando saranno disponibili per l'installazione nuove build della tua app. A tale scopo, assicurati di aver abilitato l' API Firebase App Testers per il tuo progetto "Firebase Codelab" (nella console Google Cloud). Dovrai accedere con lo stesso account e selezionare il progetto corretto dal menu a discesa in alto.

Configura avvisi in-app

L'SDK di App Distribution fornisce due modi per impostare avvisi di build in-app per i tuoi tester: una configurazione di avviso di base, che include una finestra di dialogo di accesso predefinita da mostrare ai tester, e una configurazione di avviso avanzata, che ti consente di personalizzare la propria interfaccia utente (UI).

Inizieremo con la configurazione di base degli avvisi. Puoi utilizzare checkForUpdate per visualizzare una finestra di dialogo di attivazione degli avvisi predefinita per i tester che non hanno ancora abilitato gli avvisi e quindi verificare se è disponibile una nuova build. I tester abilitano gli avvisi accedendo a un account che ha accesso all'app in App Distribution. Quando viene chiamato, il metodo esegue la seguente sequenza:

  1. Controlla se un tester ha abilitato gli avvisi. In caso contrario, viene visualizzata una finestra di dialogo predefinita che richiede loro di accedere ad App Distribution con il proprio account Google.

L'abilitazione degli avvisi è un processo una tantum sul dispositivo di prova e persiste attraverso gli aggiornamenti dell'app. Gli avvisi rimangono abilitati sul dispositivo di test finché l'app non viene disinstallata o finché non viene chiamato il metodo signOutTester . Per ulteriori informazioni, vedere la documentazione di riferimento del metodo ( Swift o Objective-C ).

  1. Verifica la presenza di nuove build disponibili per l'installazione del tester. Restituisce un oggetto di rilascio o un errore .

Puoi includere checkForUpdate in qualsiasi momento nella tua app. Ad esempio, puoi richiedere ai tester di installare le nuove build disponibili all'avvio includendo checkForUpdate nel viewDidAppear di UIViewController .

Nel file AppDistributionViewController.swift importa Firebase nella parte superiore del file

AppDistributionViewController.swift

import Firebase

Apri AppDistributionExample/AppDistributionViewController.swift e copia le righe nel metodo viewDidAppear in questo modo:

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    checkForUpdate()
 }

Ora implementiamo il metodo checkForUpdate().

AppDistributionViewController.swift

  private func checkForUpdate() {
    AppDistribution.appDistribution().checkForUpdate(completion: { [self] release, error in
      var uiAlert: UIAlertController

      if error != nil {
        uiAlert = UIAlertController(title: "Error", message: "Error Checking for update! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
      } else if release == nil {
        uiAlert = UIAlertController(title: "Check for Update", message: "No releases found!!", preferredStyle: .alert)
        uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default))
      } else {
        guard let release = release else { return }

        let title = "New Version Available"
        let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
        uiAlert = UIAlertController(title: title, message: message, preferredStyle: .alert)

        uiAlert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
          _ in
          UIApplication.shared.open(release.downloadURL)
        })
        uiAlert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
          _ in
        })
      }
      self.present(uiAlert, animated: true, completion: nil)
    })
  }

5. Crea e invita i tester a scaricare la tua app

In questo passaggio creerai la tua app e testerai l'implementazione distribuendo la build ai tester utilizzando la console Firebase.

Crea la tua app

Quando sei pronto per distribuire una versione pre-release della tua app ai tester, seleziona "Qualsiasi dispositivo iOS (arm64)" come destinazione della build e Prodotto->Archivio. Una volta creato l'archivio, crea una distribuzione firmata con il profilo di distribuzione di sviluppo.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Al termine della compilazione, viene salvato un file IPA e alcuni file di registro nella cartella specificata. Distribuisci il file IPA ai tuoi tester nei passaggi seguenti.

Se riscontri problemi durante la creazione della tua app, consulta i documenti di coprogettazione di Apple per i passaggi di risoluzione dei problemi.

Distribuisci la tua app ai tester

Per distribuire la tua app ai tester, carica il file IPA utilizzando la console Firebase:

  1. Apri la pagina Distribuzione app della console Firebase. Seleziona il tuo progetto Firebase quando richiesto.
  2. Premi Inizia

e4671bd304ecfe47.png

  1. Nella pagina Versioni, seleziona l'app che desideri distribuire dal menu a discesa.

8a3da2939b9746f4.png

  1. Trascina il file IPA della tua app sulla console per caricarlo.
  2. Una volta completato il caricamento, specifica i gruppi di tester e i singoli tester che desideri ricevano la build. (Aggiungi la tua email per ricevere l'invito.) Quindi, aggiungi le note di rilascio per la build. Vedi Gestire i tester per ulteriori informazioni sulla creazione di gruppi di tester.

de63e3c3c64f909e.png

  1. Fare clic su Distribuisci per rendere la build disponibile ai tester.

b6e75dc216fc3731.png

Aggiungi te stesso come tester alla versione

Nella console Firebase, ora puoi vedere i tester che hai aggiunto nella versione della tua app.

eb61c6be96ff3a11.png

Poiché hai incluso il tuo indirizzo email, riceverai un'email da Firebase App Distribution che ti invita a testare l'app. Ora sei il primo tester! Continua la sezione seguente per configurarti come tester sul tuo dispositivo di prova.

Registra il tuo dispositivo di prova

Dovrai prima registrare il tuo dispositivo di prova per scaricare e testare una versione Ad Hoc.

  1. Sul tuo dispositivo di prova iOS, apri l'e-mail inviata da Firebase App Distribution e tocca il collegamento Inizia. Assicurati di aprire il collegamento in Safari.
  2. Nell'app Web per tester Firebase App Distribution visualizzata, accedi con il tuo Account Google e tocca Accetta invito.

4d1af345ef944620.png

Ora vedrai la versione a cui sei stato invitato.

  1. Tocca Registra dispositivo per condividere il tuo UDID con Firebase in modo da poter aggiornare il profilo di provisioning della tua app in un secondo momento.

fd141215e54a938d.png

  1. Segui le istruzioni e vai alle impostazioni per scaricare il profilo e condividere il tuo UDID.

Ora, quando torni in App Distribution, la versione è ora contrassegnata come "Dispositivo registrato":

fe93d649dfa25877.png

L'UDID del tester è stato ora condiviso con lo sviluppatore. Ora tocca allo sviluppatore creare per il tester una nuova versione dell'app.

Visualizza le informazioni del tester nella console

Tornando alla visualizzazione dello sviluppatore nella console Firebase, il tester verrà visualizzato come "Accettato" nella versione:

1bef6f182c1c58f9.png

Riceverai quindi anche un'e-mail come sviluppatore se il dispositivo che stanno utilizzando non è già incluso nel profilo di provisioning. Questo ti avviserà del nuovo UDID che devi aggiungere. Hai anche la possibilità di esportare tutti gli UDID come file di testo.

  1. Per esportare tutti gli UDID, apri la scheda Tester e gruppi.

2745d49a6abc47fe.png

  1. Fai clic su "Esporta UDID Apple".

cb45477f8cc436ba.png

Il file dovrebbe contenere l'UDID del tuo dispositivo di prova.

Device ID            Device Name                            Device Platform
1234567890     tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen        ios

Quando ricevi una di queste email, aggiorna il tuo profilo di provisioning con l'UDID e distribuisci una nuova build ai tuoi tester seguendo questi passaggi:

  1. Aggiungi i dispositivi al tuo portale per sviluppatori Apple.
  • Opzione 1: importa gli UDID del dispositivo come file CSV. Nella scheda Tester e gruppi del dashboard Distribuzione app, seleziona Tutti i tester, quindi fai clic su Esporta UDID Apple per scaricare un file CSV. Successivamente, importa il file nel tuo account sviluppatore Apple utilizzando l'opzione Registra più dispositivi. Fare riferimento alla documentazione di Apple per saperne di più. Tieni presente che il tuo account sviluppatore Apple potrebbe consentirti di importare solo un numero limitato di dispositivi all'anno.
  • Opzione 2: raccogli e inserisci gli UDID tramite e-mail. Nella pagina Aggiungi dispositivi del portale per sviluppatori Apple, registra il nuovo UDID specificato nell'e-mail che hai ricevuto.

ffb74294e68ee1c8.png

  1. Aggiungi i dispositivi registrati al tuo profilo di provisioning .
  2. Scarica il profilo di provisioning e usalo per ricostruire la tua app. Se stai ricostruendo solo per aggiornare i dispositivi registrati, non aggiornare il numero di build o la versione.
  3. Ridistribuisci la tua app dalla console Firebase o dalla CLI. Se hai già distribuito una build con lo stesso numero di build e versione, solo gli utenti dei dispositivi appena registrati riceveranno email di notifica.

Scarica la versione dal dispositivo di prova

Ora la versione ha l'UDID del dispositivo di prova, quindi il dispositivo di prova può scaricare e installare l'app. App Distribution invia un'e-mail ai tester quando il loro UDID viene aggiunto a una nuova versione.

a4049260bae2850b.png

  1. Sul dispositivo di test, torna all'app Web del tester App Distribution utilizzando il collegamento nell'e-mail o l'icona nella schermata iniziale del dispositivo.

Quando accedi all'app codelab UDID, puoi vedere che la versione è pronta per il download.

papà6d03b6ad78746.png

  1. Se utilizzi un dispositivo fisico, premi download, quindi installa ed esegui l'app!
  2. All'avvio dell'app, ti verrà chiesto di abilitare gli avvisi di nuova build. Seleziona "Attiva"

6e3540a2900734e6.png

  1. Quindi ti verrà chiesto di accedere. Fai clic su "Continua".

82d90d7935bfaea0.png

  1. Accedi con il tuo account tester.

13bee1d03fa94ebf.png

  1. Verrai riportato all'app. Non dovrai accedere o accettare avvisi la prossima volta che esegui l'app.

815d6757eb5f6327.png

Distribuisci un aggiornamento ai tuoi tester

  1. Aggiorna il numero di build su "2".

861aa63ebbc6ec54.png

  1. Seleziona "Qualsiasi dispositivo iOS (arm64)" come destinazione di creazione e Prodotto->Archivio. Una volta generato l'archivio, crea una distribuzione firmata con il profilo di distribuzione di sviluppo.
  2. Al termine della compilazione, viene salvato un file IPA e alcuni file di registro nella cartella specificata. Carica questo nuovo IPA nella tua console Firebase, aggiungi nuovamente la tua email come tester e distribuisci.

b6e75dc216fc3731.png

Testare gli avvisi di build

  1. Assicurati di aver chiuso l'app se era aperta. Riavvia l'app.
  2. Al riavvio dell'app, dovresti ricevere un avviso "Nuova versione disponibile".

3bd532992df458e6.png

  1. Fare clic su "Aggiorna" per ricevere la versione più recente.
  2. Fai clic su "Installa" nella schermata successiva.

3a761d8fa4b79d33.png

  1. Congratulazioni! Sei riuscito ad aggiornare la tua app con gli avvisi integrati.

6. Personalizza l'accesso del tester

I metodi signInTester/signOutTester e isTesterSignedIn ti offrono maggiore flessibilità nella personalizzazione dell'esperienza di accesso del tester, in modo che possa corrispondere meglio all'aspetto della tua app.

L'esempio seguente controlla se il tester ha già effettuato l'accesso al proprio account tester Firebase App Distribution, quindi puoi scegliere di visualizzare l'interfaccia utente di accesso solo per i tester che non hanno ancora effettuato l'accesso. Dopo che il tester ha effettuato l'accesso, puoi quindi chiamare checkForUpdate per verificare se il tester ha accesso a una nuova build.

Disabilitiamo il controllo automatico degli aggiornamenti in viewDidAppea r commentando la chiamata checkForUpdate() .

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    // checkForUpdate()
 }

Chiamiamo invece checkForUpdate() in checkForUpdateButtonClicked( ).

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

Ora implementiamo il nostro metodo signInOutButtonClicked() che farà accedere l'utente se è disconnesso o disconnetterà l'utente se ha già effettuato l'accesso.

AppDistributionViewController.swift

 @objc func signInOutButtonClicked() {
    if isTesterSignedIn() {
      AppDistribution.appDistribution().signOutTester()

      self.configureCheckForUpdateButton()
      self.configureSignInSignOutButton()
      self.configureSignInStatus()

    } else {
      AppDistribution.appDistribution().signInTester(completion: { error in
        if error == nil {
          self.configureCheckForUpdateButton()
          self.configureSignInSignOutButton()
          self.configureSignInStatus()
        } else {
          let uiAlert = UIAlertController(title: "Custom:Error", message: "Error during tester sign in! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
          uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default) {
            _ in
          })

          self.present(uiAlert, animated: true, completion: nil)
        }
      })
    }
  }

Infine implementiamo il metodo isTesterSignedI n.

AppDistributionViewController.swift

 private func isTesterSignedIn() -> Bool {
    return AppDistribution.appDistribution().isTesterSignedIn
 }

Costruisci e testa la tua implementazione

7. Congratulazioni!

Hai integrato la funzionalità "visualizzazione avvisi in-app" in un'app utilizzando l'SDK iOS di Firebase App Distribution.

Di cosa abbiamo parlato

  • Distribuzione dell'app Firebase
  • Distribuzione app Firebase Nuovo SDK iOS per avvisi

Prossimi passi

Saperne di più

Hai una domanda?

Segnala problemi