Avvisa i tester sulle nuove versioni delle tue app con Firebase App Distribution iOS SDK - Codelab

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

1. Panoramica

Benvenuto in Integrazione dell'SDK di distribuzione dell'app Firebase nel codelab dell'app iOS. In questo codelab, aggiungerai l'SDK di distribuzione dell'app alla tua app per visualizzare avvisi in-app ai tuoi tester quando sono disponibili per il download nuove build. Imparerai come utilizzare sia una configurazione di base che una configurazione personalizzata per fare in modo che i tuoi tester abbiano effettuato l'accesso per ricevere gli aggiornamenti. Quindi trasferirai una nuova versione su App Distribution e attiverai un nuovo avviso di build direttamente nell'app.

Cosa imparerai

  • Come utilizzare la distribuzione dell'app per distribuire un'app non definitiva ai tester in tempo reale
  • Come integrare l'SDK per iOS di distribuzione app nella tua app
  • Come avvisare un tester quando è disponibile una nuova build non definitiva pronta per l'installazione
  • Come personalizzare l'SDK per soddisfare le tue esigenze di test specifiche

Di cosa avrai bisogno

  • Xcode 12 (o superiore)
  • CocoaPods 1.9.1 (o superiore)
  • Un account sviluppatore Apple per la distribuzione ad hoc
  • Un dispositivo iOS fisico per il 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?

Leggilo 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 per la console Firebase

Aggiungi un nuovo progetto Firebase

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

Non è necessario abilitare Google Analytics per questo progetto.

  1. Fare clic su Crea progetto .

Aggiungi app a Firebase

Segui la documentazione per registrare la tua app con Firebase. Utilizza "com.google.firebase.codelab.AppDistribution.<your_name>" come ID bundle 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 link .

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 bundle in modo che corrisponda all'identificatore del bundle dell'app Firebase, che si trova nelle impostazioni del progetto . Dovrebbe essere "com.google.firebase.codelab.AppDistribution.<tuo_nome>"

Aggiungi Firebase alla tua app

Individua il file GoogleService-Info.plist che hai 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 tuo 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 nuova build in-app con l'SDK di distribuzione app

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

Configura avvisi in-app

L'SDK di distribuzione app offre due modi per impostare avvisi di build in-app per i tester: una configurazione di avviso di base, fornita con una finestra di dialogo di accesso predefinita da mostrare ai tester e una configurazione di avviso avanzata, che 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 abilitazione 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. Verifica se un tester ha abilitato gli avvisi. In caso contrario, visualizza una finestra di dialogo predefinita che richiede loro di accedere a App Distribution con il proprio account Google.

L'abilitazione degli avvisi è un processo una tantum sul dispositivo di test e persiste negli aggiornamenti dell'app. Gli avvisi rimangono abilitati nel dispositivo di test fino a quando l'app non viene disinstallata o fino a quando non viene chiamato il metodo signOutTester . Consulta la documentazione di riferimento del metodo ( Swift o Objective-C ) per ulteriori informazioni.

  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 in viewDidAppear di UIViewController .

Nel tuo 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 la tua implementazione distribuendo la build ai tester utilizzando la console Firebase.

Crea la tua app

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

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Al termine della compilazione, salva 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 codesign di Apple per i passaggi per la 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. Al termine del caricamento, specifica i gruppi di tester e i singoli tester a cui desideri ricevere la build. (Aggiungi la tua email per ricevere l'invito.) Quindi, aggiungi le note sulla versione per la build. Consulta 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 durante il rilascio della tua app.

eb61c6be96ff3a11.png

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

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 link Inizia. Assicurati di aprire il collegamento in Safari.
  2. Nell'app Web Firebase App Distribution tester visualizzata, accedi con il tuo account Google e tocca Accetta invito.

4d1af345ef944620.png

Ora vedrai il rilascio 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 dell'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 spetta allo sviluppatore creare al tester una nuova versione dell'app.

Visualizza le informazioni sul tester nella console

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

1bef6f182c1c58f9.png

Riceverai quindi 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 dispositivo di test.

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 della dashboard di distribuzione app, seleziona Tutti i tester, quindi fai clic su Esporta UDID Apple per scaricare un file CSV. Quindi, 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: raccogliere e inserire gli UDID via 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 utilizzalo 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 ricevono e-mail di notifica.

Scarica la versione dal dispositivo di prova

Ora la versione ha l'UDID del dispositivo di test, quindi il dispositivo di test 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 prova, torna all'app Web del tester di distribuzione app utilizzando il collegamento nell'e-mail o l'icona nella schermata iniziale del dispositivo.

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

dad6d03b6ad78746.png

  1. Se sei su 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 "Accendi"

6e3540a2900734e6.png

  1. Quindi ti chiederà 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 tuo numero di build su "2".

861aa63ebbc6ec54.png

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

b6e75dc216fc3731.png

Avvisi di build di prova

  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 l'ultima versione.
  2. Fai clic su "Installa" nella schermata successiva.

3a761d8fa4b79d33.png

  1. Congratulazioni! Sei stato in grado di aggiornare la tua app con gli avvisi integrati.

6. Personalizza l'accesso del tester

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

L'esempio seguente verifica se il tester ha già effettuato l'accesso al proprio account tester di distribuzione app Firebase, 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 chiama 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()
 }

Invece, chiamiamo 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
 }

Crea e testa la tua implementazione

7. Congratulazioni!

Hai integrato la funzione "visualizzazione avvisi in-app" in un'app utilizzando Firebase App Distribution iOS SDK.

Di cosa abbiamo parlato

  • Distribuzione dell'app Firebase
  • Distribuzione app Firebase Nuovi avvisi SDK iOS

Prossimi passi

Per saperne di più

Hai una domanda?

Segnala problemi