Alertez les testeurs sur vos nouvelles versions d'application avec le SDK iOS Firebase App Distribution - Codelab

1. Vue d'ensemble

Bienvenue dans l'intégration du SDK de distribution d'applications Firebase dans l'atelier de programmation de votre application iOS. Dans cet atelier de programmation, vous allez ajouter le SDK de distribution d'applications à votre application afin d'afficher des alertes intégrées à vos testeurs lorsque de nouvelles versions sont disponibles au téléchargement. Vous apprendrez à utiliser à la fois une configuration de base et une configuration personnalisée pour que vos testeurs se connectent et reçoivent les mises à jour. Ensuite, vous pousserez une nouvelle version vers App Distribution et déclencherez une nouvelle alerte de build directement dans l'application.

Ce que vous apprendrez

  • Comment utiliser App Distribution pour distribuer une application préliminaire aux testeurs en direct
  • Comment intégrer le SDK App Distribution iOS dans votre application
  • Comment alerter un testeur lorsqu'une nouvelle version préliminaire est prête à être installée
  • Comment personnaliser le SDK pour répondre à vos besoins de test uniques

Ce dont vous aurez besoin

  • Xcode 12 (ou supérieur)
  • CocoaPods 1.9.1 (ou supérieur)
  • Un compte Apple Developer pour la distribution Ad Hoc
  • Un appareil iOS physique pour les tests. (L' application de simulation iOS fonctionnera pour la plupart du laboratoire de programmation, mais les simulateurs ne peuvent pas télécharger les versions.)

Comment allez-vous utiliser ce tutoriel ?

Lisez-le seulement Lisez-le et complétez les exercices

Comment évaluez-vous votre expérience avec la création d'applications iOS ?

Novice Intermédiaire Compétent

2. Créer un projet de console Firebase

Ajouter un nouveau projet Firebase

  1. Connectez-vous à Firebase.
  2. Dans la console Firebase, cliquez sur Ajouter un projet, puis nommez votre projet "Firebase Codelab".

Vous n'avez pas besoin d'activer Google Analytics pour ce projet.

  1. Cliquez sur Créer un projet .

Ajouter une application à Firebase

Suivez la documentation pour enregistrer votre application auprès de Firebase. Utilisez "com.google.firebase.codelab.AppDistribution.<your_name>" comme ID de bundle iOS.

Lorsque vous y êtes invité, téléchargez le fichier GoogleService-Info.plist de votre projet. Vous en aurez besoin plus tard.

3. Obtenez l'exemple de projet

Télécharger le code

Commencez par cloner l'exemple de projet.

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

Si vous n'avez pas installé git, vous pouvez également télécharger l'exemple de projet depuis sa page GitHub ou en cliquant sur ce lien .

Télécharger les dépendances et ouvrir le projet dans Xcode

  1. Ouvrez le Podfile dans le même répertoire
cd firebase-appdistribution-ios/start
Open Podfile
  1. Ajoutez la ligne suivante à votre podfile :

Podfile

pod 'Firebase/AppDistribution'

Exécutez la mise à pod update dans le répertoire du projet et ouvrez le projet dans Xcode.

pod install --repo-update
xed .

Mettre à jour l'identifiant de bundle pour qu'il corresponde à votre application Firebase

Dans le menu de gauche, double-cliquez sur AppDistributionExample. Ensuite, localisez l'onglet Général et modifiez l'identifiant du groupe pour qu'il corresponde à l'identifiant du groupe de votre application Firebase, qui se trouve dans les paramètres du projet . Cela devrait être "com.google.firebase.codelab.AppDistribution.<your_name>"

Ajouter Firebase à votre application

Localisez le fichier GoogleService-Info.plist que vous avez téléchargé précédemment dans votre système de fichiers et faites-le glisser à la racine du projet Xcode. Vous pouvez également télécharger ce fichier à tout moment depuis la page des paramètres de votre projet .

3cf9290805e7fdab.png

Dans votre fichier AppDistributionExample/AppDelegate.swift , importez Firebase en haut du fichier

AppDistributionExample/AppDelegate.swift

import Firebase

Et dans la méthode didFinishLaunchingWithOptions , ajoutez un appel pour configurer Firebase.

AppDistributionExample/AppDelegate.swift

FirebaseApp.configure()

4. Configurez des alertes de nouvelle version dans l'application avec le SDK de distribution d'applications

Au cours de cette étape, vous ajouterez le SDK de distribution d'applications Firebase à votre application et afficherez des alertes intégrées à vos testeurs lorsque de nouvelles versions de votre application pourront être installées. Pour cela, assurez-vous d'avoir activé l' API Firebase App Testers pour votre projet "Firebase Codelab" (dans Google Cloud Console). Vous devrez vous connecter avec le même compte et sélectionner le bon projet dans le menu déroulant en haut.

Configurer les alertes dans l'application

Le SDK de distribution d'applications propose deux manières de configurer des alertes de build intégrées à l'application pour vos testeurs : une configuration d'alerte de base, qui est fournie avec une boîte de dialogue de connexion prédéfinie à afficher pour les testeurs, et une configuration d'alerte avancée, qui vous permet de personnaliser votre propre interface utilisateur (UI).

Nous allons commencer par la configuration de base des alertes. Vous pouvez utiliser checkForUpdate pour afficher une boîte de dialogue d'activation des alertes prédéfinie pour les testeurs qui n'ont pas encore activé les alertes, puis vérifier si une nouvelle version est disponible. Les testeurs activent les alertes en se connectant à un compte ayant accès à l'application dans App Distribution. Lorsqu'elle est appelée, la méthode exécute la séquence suivante :

  1. Vérifie si un testeur a activé les alertes. Si ce n'est pas le cas, affiche une boîte de dialogue prédéfinie qui les invite à se connecter à App Distribution avec leur compte Google.

L'activation des alertes est un processus unique sur l'appareil de test et persiste à travers les mises à jour de votre application. Les alertes restent activées sur l'appareil de test jusqu'à ce que l'application soit désinstallée ou jusqu'à ce que la méthode signOutTester soit appelée. Voir la documentation de référence de la méthode ( Swift ou Objective-C ) pour plus d'informations.

  1. Vérifie les nouvelles versions disponibles que le testeur doit installer. Renvoie un objet release ou une erreur .

Vous pouvez inclure checkForUpdate à tout moment dans votre application. Par exemple, vous pouvez inviter vos testeurs à installer les nouvelles versions disponibles au démarrage en incluant checkForUpdate dans le viewDidAppear du UIViewController .

Dans votre fichier AppDistributionViewController.swift , importez Firebase en haut du fichier

AppDistributionViewController.swift

import Firebase

Ouvrez AppDistributionExample/AppDistributionViewController.swift et copiez les lignes dans la méthode viewDidAppear comme ceci :

AppDistributionViewController.swift

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

Implémentons maintenant la méthode 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. Créez et invitez des testeurs à télécharger votre application

Au cours de cette étape, vous allez créer votre application et tester votre implémentation en distribuant la version aux testeurs à l'aide de la console Firebase.

Créez votre application

Lorsque vous êtes prêt à distribuer une version préliminaire de votre application aux testeurs, sélectionnez "Tout appareil iOS (arm64)" comme destination de construction, puis Produit-> Archiver. Une fois l'archive créée, créez une distribution signée avec le profil de distribution de développement.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Lorsque la génération est terminée, elle enregistre un fichier IPA et certains fichiers journaux dans le dossier que vous spécifiez. Vous distribuez le fichier IPA à vos testeurs dans les étapes suivantes.

Si vous rencontrez des problèmes lors de la création de votre application, consultez les documents de conception de code d'Apple pour connaître les étapes de dépannage.

Distribuez votre application aux testeurs

Pour distribuer votre application aux testeurs, importez le fichier IPA à l'aide de la console Firebase :

  1. Ouvrez la page de distribution d'applications de la console Firebase. Sélectionnez votre projet Firebase lorsque vous y êtes invité.
  2. Appuyez sur Commencer

e4671bd304ecfe47.png

  1. Sur la page Releases, sélectionnez l'application que vous souhaitez distribuer dans le menu déroulant.

8a3da2939b9746f4.png

  1. Faites glisser le fichier IPA de votre application vers la console pour le télécharger.
  2. Une fois le téléchargement terminé, spécifiez les groupes de testeurs et les testeurs individuels pour lesquels vous souhaitez recevoir la version. (Ajoutez votre e-mail pour recevoir l'invitation.) Ensuite, ajoutez des notes de version pour la version. Voir Gérer les testeurs pour en savoir plus sur la création de groupes de testeurs.

de63e3c3c64f909e.png

  1. Cliquez sur Distribuer pour mettre la version à la disposition des testeurs.

b6e75dc216fc3731.png

Ajoutez-vous en tant que testeur à la version

Dans la console Firebase, vous pouvez désormais voir les testeurs que vous avez ajoutés sous la version de votre application.

eb61c6be96ff3a11.png

Puisque vous avez inclus votre adresse e-mail, vous recevrez un e-mail de Firebase App Distribution vous invitant à tester l'application. Vous êtes maintenant le premier testeur ! Continuez la section ci-dessous pour vous configurer en tant que testeur sur votre appareil de test.

Enregistrez votre appareil de test

Vous devez d'abord enregistrer votre appareil de test pour télécharger et tester une version Ad Hoc.

  1. Sur votre appareil de test iOS, ouvrez l'e-mail envoyé par Firebase App Distribution et appuyez sur le lien Commencer. Assurez-vous d'ouvrir le lien dans Safari.
  2. Dans l'application Web de test Firebase App Distribution qui s'affiche, connectez-vous avec votre compte Google et appuyez sur Accepter l'invitation.

4d1af345ef944620.png

Maintenant, vous verrez la version à laquelle vous avez été invité.

  1. Appuyez sur Enregistrer l'appareil pour partager votre UDID avec Firebase afin de pouvoir mettre à jour le profil d'approvisionnement de votre application ultérieurement.

fd141215e54a938d.png

  1. Suivez les instructions et accédez aux paramètres pour télécharger le profil et partager votre UDID.

Désormais, lorsque vous revenez dans App Distribution, la version est désormais marquée comme "Appareil enregistré":

fe93d649dfa25877.png

L'UDID du testeur a maintenant été partagé avec le développeur. C'est maintenant au développeur de créer pour le testeur une nouvelle version de l'application.

Afficher les informations sur les testeurs dans la console

De retour dans la vue du développeur dans la console Firebase, le testeur apparaîtra comme "Accepté" sous la version :

1bef6f182c1c58f9.png

Vous recevrez également un e-mail en tant que développeur si l'appareil qu'il utilise n'est pas déjà inclus dans le profil d'approvisionnement. Cela vous informera du nouvel UDID que vous devez ajouter. Vous avez également la possibilité d'exporter tous les UDID sous forme de fichier texte.

  1. Pour exporter tous les UDID, ouvrez l'onglet Testeurs et groupes.

2745d49a6abc47fe.png

  1. Cliquez sur "Exporter les UDID Apple".

cb45477f8cc436ba.png

Le fichier doit contenir l'UDID de votre appareil de test.

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

Lorsque vous recevez l'un de ces e-mails, mettez à jour votre profil d'approvisionnement avec l'UDID et distribuez une nouvelle version à vos testeurs en suivant ces étapes :

  1. Ajoutez les appareils à votre portail des développeurs Apple.
  • Option 1 : importez les UDID de l'appareil sous forme de fichier CSV. Dans l'onglet Testeurs et groupes du tableau de bord App Distribution, sélectionnez Tous les testeurs, puis cliquez sur Exporter les UDID Apple pour télécharger un fichier CSV. Ensuite, importez le fichier dans votre compte de développeur Apple à l'aide de l'option Enregistrer plusieurs appareils. Reportez-vous à la documentation d'Apple pour en savoir plus. Notez que votre compte de développeur Apple ne peut vous permettre d'importer qu'un nombre limité d'appareils par an.
  • Option 2 : collectez et saisissez les UDID par e-mail. Sur la page Ajouter des appareils du portail des développeurs Apple, enregistrez le nouvel UDID spécifié dans l'e-mail que vous avez reçu.

ffb74294e68ee1c8.png

  1. Ajoutez les appareils enregistrés à votre profil d'approvisionnement .
  2. Téléchargez le profil d'approvisionnement et utilisez-le pour reconstruire votre application. Si vous reconstruisez uniquement pour mettre à jour les appareils enregistrés, ne mettez pas à jour le numéro de build ou la version.
  3. Redistribuez votre application à partir de la console Firebase ou de la CLI. Si vous avez déjà distribué une build avec le même numéro de build et la même version, seuls les utilisateurs d'appareils nouvellement enregistrés reçoivent des e-mails de notification.

Télécharger la version à partir de l'appareil de test

Maintenant, la version a l'UDID de l'appareil de test, de sorte que l'appareil de test peut télécharger et installer l'application. App Distribution envoie un e-mail aux testeurs lorsque leur UDID est ajouté à une nouvelle version.

a4049260bae2850b.png

  1. Sur l'appareil de test, revenez à l'application Web du testeur App Distribution à l'aide du lien dans l'e-mail ou de l'icône sur l'écran d'accueil de l'appareil.

Lorsque vous accédez à l'application UDID Codelab, vous pouvez voir que la version est prête à être téléchargée.

papa6d03b6ad78746.png

  1. Si vous êtes sur un appareil physique, appuyez sur télécharger, puis installez et lancez l'application !
  2. Lorsque l'application démarre, elle vous demandera d'activer les nouvelles alertes de build. Sélectionnez "Activer"

6e3540a2900734e6.png

  1. Ensuite, il vous demandera de vous connecter. Cliquez sur "Continuer".

82d90d7935bfaea0.png

  1. Connectez-vous avec votre compte testeur.

13bee1d03fa94ebf.png

  1. Vous serez redirigé vers l'application. Vous n'aurez pas à vous connecter ou à accepter les alertes la prochaine fois que vous exécuterez l'application.

815d6757eb5f6327.png

Distribuez une mise à jour à vos testeurs

  1. Mettez à jour votre numéro de build sur "2".

861aa63ebbc6ec54.png

  1. Sélectionnez "Tout appareil iOS (arm64)" comme destination de construction, et Produit-> Archiver. Une fois l'archive générée, créez une distribution signée avec le profil de distribution de développement.
  2. Lorsque la génération est terminée, elle enregistre un fichier IPA et certains fichiers journaux dans le dossier que vous spécifiez. Téléchargez cette nouvelle IPA dans votre console Firebase, ajoutez à nouveau votre adresse e-mail en tant que testeur et distribuez.

b6e75dc216fc3731.png

Alertes de build de test

  1. Assurez-vous d'avoir fermé l'application si elle était ouverte. Redémarrez l'application.
  2. Lorsque l'application redémarre, vous devriez recevoir une alerte "Nouvelle version disponible".

3bd532992df458e6.png

  1. Cliquez sur "Mettre à jour" pour recevoir la dernière version.
  2. Cliquez sur "Installer" sur l'écran suivant.

3a761d8fa4b79d33.png

  1. Toutes nos félicitations! Vous avez pu mettre à jour votre application avec les alertes intégrées.

6. Personnalisez la connexion du testeur

Les méthodes signInTester/signOutTester et isTesterSignedIn vous offrent plus de flexibilité pour personnaliser l'expérience de connexion de votre testeur, afin qu'elle corresponde mieux à l'apparence de votre application.

L'exemple suivant vérifie si le testeur s'est déjà connecté à son compte de testeur Firebase App Distribution. Vous pouvez donc choisir d'afficher votre interface utilisateur de connexion uniquement pour les testeurs qui ne se sont pas encore connectés. Une fois que le testeur s'est connecté, vous pouvez alors appelez checkForUpdate pour vérifier si le testeur a accès à une nouvelle version.

Désactivons la vérification automatique des mises à jour dans viewDidAppea r en commentant l'appel checkForUpdate() .

AppDistributionViewController.swift

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

Au lieu de cela, appelons checkForUpdate() dans checkForUpdateButtonClicked( ).

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

Maintenant, implémentons notre méthode signInOutButtonClicked() qui connectera l'utilisateur s'il est déconnecté, ou déconnectera l'utilisateur s'il est déjà connecté.

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)
        }
      })
    }
  }

Enfin, implémentons la méthode isTesterSignedI n .

AppDistributionViewController.swift

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

Créez et testez votre implémentation

7. Félicitations !

Vous avez intégré la fonctionnalité "affichage des alertes dans l'application" dans une application à l'aide du SDK iOS Firebase App Distribution.

Ce que nous avons couvert

  • Distribution d'applications Firebase
  • Firebase App Distribution Nouvelles alertes iOS SDK

Prochaines étapes

Apprendre encore plus

Avoir une question?

Signaler des problèmes