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?
Come valuteresti la tua esperienza con la creazione di app iOS?
2. Crea un progetto della console Firebase
Aggiungi un nuovo progetto Firebase
- Accedi a Firebase.
- Nella console Firebase, fai clic su Aggiungi progetto, quindi assegna il nome al progetto "Firebase Codelab".
Non è necessario abilitare Google Analytics per questo progetto.
- 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
- Apri il Podfile nella stessa directory
cd firebase-appdistribution-ios/start Open Podfile
- 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.
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:
- 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 ).
- 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.
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:
- Apri la pagina Distribuzione app della console Firebase. Seleziona il tuo progetto Firebase quando richiesto.
- Premi Inizia
- Nella pagina Versioni, seleziona l'app che desideri distribuire dal menu a discesa.
- Trascina il file IPA della tua app sulla console per caricarlo.
- 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.
- Fare clic su Distribuisci per rendere la build disponibile ai tester.
Aggiungi te stesso come tester alla versione
Nella console Firebase, ora puoi vedere i tester che hai aggiunto nella versione della tua app.
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.
- 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.
- Nell'app Web per tester Firebase App Distribution visualizzata, accedi con il tuo Account Google e tocca Accetta invito.
Ora vedrai la versione a cui sei stato invitato.
- 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.
- 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":
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:
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.
- Per esportare tutti gli UDID, apri la scheda Tester e gruppi.
- Fai clic su "Esporta UDID Apple".
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:
- 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.
- Aggiungi i dispositivi registrati al tuo profilo di provisioning .
- 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.
- 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.
- 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.
- Se utilizzi un dispositivo fisico, premi download, quindi installa ed esegui l'app!
- All'avvio dell'app, ti verrà chiesto di abilitare gli avvisi di nuova build. Seleziona "Attiva"
- Quindi ti verrà chiesto di accedere. Fai clic su "Continua".
- Accedi con il tuo account tester.
- Verrai riportato all'app. Non dovrai accedere o accettare avvisi la prossima volta che esegui l'app.
Distribuisci un aggiornamento ai tuoi tester
- Aggiorna il numero di build su "2".
- 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.
- 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.
Testare gli avvisi di build
- Assicurati di aver chiuso l'app se era aperta. Riavvia l'app.
- Al riavvio dell'app, dovresti ricevere un avviso "Nuova versione disponibile".
- Fare clic su "Aggiorna" per ricevere la versione più recente.
- Fai clic su "Installa" nella schermata successiva.
- 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