Alertez les testeurs des nouvelles versions de votre application avec le SDK iOS Firebase App Distribution - Codelab

1. Vue d'ensemble

Bienvenue dans l'atelier de programmation sur l'intégration du SDK de distribution d'applications Firebase dans votre application iOS. Dans cet atelier de programmation, vous allez ajouter le SDK App Distribution à votre application afin d'afficher des alertes dans l'application à vos testeurs lorsque de nouvelles builds 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 enverrez une nouvelle version à App Distribution et déclencherez une alerte de nouvelle 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 iOS App Distribution 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 développeur Apple pour la distribution Ad Hoc
  • Un appareil iOS physique pour les tests. (L' application de simulation iOS fonctionnera pour la plupart des ateliers de programmation, mais les simulateurs ne peuvent pas télécharger de versions.)

Comment allez-vous utiliser ce tutoriel ?

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

Comment évalueriez-vous votre expérience dans 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échargez le code

Commencez par cloner l’exemple de projet.

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

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

Téléchargez les dépendances et ouvrez 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 fichier pod :

Fichier de pod

pod 'Firebase/AppDistribution'

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

pod install --repo-update
xed .

Mettez à jour l'identifiant du 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 bundle pour qu'il corresponde à l'identifiant du bundle de votre application Firebase, qui se trouve dans les paramètres du projet . Il doit s'agir de "com.google.firebase.codelab.AppDistribution.<votre_nom>".

Ajoutez 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 vers 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 build dans l'application avec le SDK App Distribution

Au cours de cette étape, vous ajouterez le SDK Firebase App Distribution à votre application et afficherez des alertes dans l'application à vos testeurs lorsque de nouvelles versions de votre application sont disponibles pour l'installation. Pour ce faire, 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 App Distribution propose deux manières de configurer des alertes de build dans l'application pour vos testeurs : une configuration d'alerte de base, accompagnée d'une boîte de dialogue de connexion prédéfinie à afficher aux testeurs, et une configuration d'alerte avancée, qui vous permet de personnalisez votre propre interface utilisateur (UI).

Nous commencerons 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 aux 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. Sinon, 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 dans 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. Consultez la documentation de référence de la méthode ( Swift ou Objective-C ) pour plus d'informations.

  1. Vérifie les versions nouvellement 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 versions nouvellement 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-> Archive. Une fois l'archive créée, créez une distribution signée avec le profil de distribution Development.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Une fois la construction 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 la documentation 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 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 Versions, 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 rendre la version disponible aux 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 désormais 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 devrez 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é depuis Firebase App Distribution et appuyez sur le lien Commencer. Assurez-vous d'ouvrir le lien dans Safari.
  2. Dans l'application Web du testeur Firebase App Distribution qui apparaît, connectez-vous avec votre compte Google et appuyez sur Accepter l'invitation.

4d1af345ef944620.png

Vous verrez maintenant 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 désormais été partagé avec le développeur. C'est maintenant au développeur de construire au testeur une nouvelle version de l'application.

Afficher les informations du testeur 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 alors é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 de provisionnement avec l'UDID et distribuez une nouvelle version à vos testeurs en suivant ces étapes :

  1. Ajoutez les appareils à votre portail de développeur 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 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 email. 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 de provisionnement .
  2. Téléchargez le profil de provisionnement et utilisez-le pour reconstruire votre application. Si vous effectuez une reconstruction uniquement pour mettre à jour les appareils enregistrés, ne mettez pas à jour le numéro de build ou la version.
  3. Redistribuez votre application depuis la console Firebase ou 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 des appareils nouvellement enregistrés reçoivent des e-mails de notification.

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

La version dispose désormais de l'UDID de l'appareil de test, ce qui permet à ce dernier de télécharger et d'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 contenu 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 exécutez l'application !
  2. Lorsque l'application démarre, elle vous demandera d'activer les alertes de nouvelle version. 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 ni à 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-> Archive. Une fois l'archive générée, créez une distribution signée avec le profil de distribution Development.
  2. Une fois la construction 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 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 puisse mieux correspondre à 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 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
  • Distribution d'applications Firebase Nouvelles alertes SDK iOS

Prochaines étapes

Apprendre encore plus

Avoir une question?

Signaler des problèmes