Configurer des alertes de nouvelle build dans l'application avec le SDK App Distribution

Le SDK Firebase App Distribution en option vous permet d'afficher des alertes dans l'application à vos testeurs lorsque de nouvelles versions de votre application sont disponibles pour l'installation. Ce guide explique comment utiliser le SDK App Distribution pour créer et personnaliser de nouvelles alertes de build pour vos testeurs.

Avant que tu commences

Si vous avez pas déjà, ajoutez Firebase à votre projet iOS .

Étape 1: activer l'API Tester de distribution App

  1. Sélectionnez votre projet dans Google Cloud Console .

  2. Sous Firebase App API testeurs, cliquez sur Activer.

Étape 2: Ajouter App distribution à votre application

Utilisez Swift Package Manager pour installer et gérer les dépendances de Firebase.

  1. Dans Xcode, avec votre projet d'application ouvert, accédez à Fichier> Paquets Swift> Ajouter un package de dépendance.
  2. Lorsque vous y êtes invité, ajoutez le référentiel SDK des plates-formes Firebase Apple :
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Choisissez la bibliothèque de distribution d'applications.
  5. Une fois terminé, Xcode commencera automatiquement à résoudre et à télécharger vos dépendances en arrière-plan.

Ensuite, effectuez quelques étapes de configuration :

  1. Google app Encodez votre ID (obligatoire uniquement pour les versions iOS 9 et 10):

    Encoder votre identifiant d'application Google

    Ajouter le appdistribution-<encoded-google-app-id> schéma d'URL en incluant l'extrait dans votre Info.plist file (reportez - vous à la documentation d'Apple pour obtenir des instructions sur la façon d'ajouter le schéma d'URL dans Xcode):

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>appdistribution-<encoded-google-app-id></string>
            </array>
        </dict>
    </array>
    

    Ensuite, encodez votre identifiant d'application Google en remplaçant les deux points (:) par des tirets (-). Notez que l' application Google ID est situé dans votre GoogleService-Info.plist fichier. Par exemple, si votre ID d'appli Google est :

    7:77777777777:ios:123456789

    Votre identifiant d'appli Google encodé est :

    7-77777777777-ios-123456789
  2. Importer le module Firebase dans votre UIApplicationDelegate :

    Rapide

    Remarque: Ce produit est disponible sur Mac OS, Mac Catalyst, tvOS ou cibles watchos.

    import Firebase
    

    Objectif c

    Remarque: Ce produit est disponible sur Mac OS, Mac Catalyst, tvOS ou cibles watchos.

    @import Firebase;
    
  3. Configurer une FirebaseApp instance partagée, généralement dans votre application application:didFinishLaunchingWithOptions: méthode:

    Rapide

    Remarque: Ce produit est disponible sur Mac OS, Mac Catalyst, tvOS ou cibles watchos.

    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Objectif c

    Remarque: Ce produit est disponible sur Mac OS, Mac Catalyst, tvOS ou cibles watchos.

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  4. Enfin, recompilez votre application.

Étape 3: Configurer des alertes en app

Le SDK App Distribution propose deux manières de configurer des alertes de build in-app pour vos testeurs : une configuration d'alerte de base, qui comprend 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 vous recommandons d'utiliser d'abord la configuration d'alerte de base si vous débutez avec le SDK App Distribution.

Configuration de base

Utilisez checkForUpdate pour afficher un préconstruit activer les alertes dialogue aux testeurs qui n'ont pas encore des alertes activées, puis vérifier si une nouvelle version est disponible. Lorsqu'elle est appelée, la méthode édicte la séquence suivante :

  1. Vérifie si un testeur a activé les alertes en l'invitant à se connecter à App Distribution avec son compte Google.

  2. Si le testeur n'a pas encore activé les alertes, affiche une boîte de dialogue prédéfinie.

    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és sur le dispositif de test jusqu'à ce que l'application est désinstallée, ou jusqu'à ce que la signOutTester méthode est appelée. Consultez la documentation de référence de la méthode ( Swift ou Objective-C ) pour plus d' informations.

  3. Vérifie les nouvelles versions disponibles pour le testeur à installer.

Vous pouvez inclure checkForUpdate à tout moment dans votre application. Par exemple, vous pouvez demander à vos testeurs d'installer nouvellement construit disponibles au démarrage en incluant checkForUpdate dans le viewDidAppear du UIViewController .

L'exemple suivant vérifie si le testeur a activé les alertes et a accès à une nouvelle version, et si c'est le cas, affiche une boîte de dialogue lorsque la version est disponible pour l'installation :

Rapide

Remarque: Ce produit est disponible sur Mac OS, Mac Catalyst, tvOS ou cibles watchos.
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  guard let release = release else {
    return
  }

  // Customize your alerts here.
  let title = "New Version Available"
  let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
  let 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 should be a UIViewController.
  self.present(uialert, animated: true, completion: nil)
})

Objectif c

Remarque: Ce produit est disponible sur Mac OS, Mac Catalyst, tvOS ou cibles watchos.
[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Check For Update"
message:[NSString stringWithFormat:@"Error during tester sign in! %@", error.localizedDescription]
preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {}];

    [alert addAction:okAction];
    [self presentViewController:alert animated:YES completion:nil];

    return;
  }

  if (release) {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"New Version Available"
message:[NSString stringWithFormat:@"Version %@ (%@) is available.", release.displayVersion,
release.buildVersion] preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *updateAction = [UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
      [[UIApplication sharedApplication] openURL:release.downloadURL options:@{}
completionHandler:nil];
    }];
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {}];
    [alert addAction:updateAction];
    [alert addAction:cancelAction];
    [self presentViewController:alert animated:YES completion:nil];
  }
}];

Configuration avancée

Les méthodes signInTester et isTesterSignedIn vous donnent plus de flexibilité de personnaliser votre signe en testeur de l' expérience, afin qu'il puisse mieux correspondre à l'apparence de votre application et la sensation.

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 appeler checkForUpdate pour vérifier si le testeur a accès à une nouvelle construction.

Rapide

Remarque: Ce produit est disponible sur Mac OS, Mac Catalyst, tvOS ou cibles watchos.
// Sign in a tester without automatically checking for update
if (!AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().signInTester (completion: { error in
    // completion block for signInTester
     if (error != nil) {
       // handle failed sign in
      return
     }
    // handle successful sign in
  })
}

// Only check for update if tester is already signed in - do not prompt
if (AppDistribution.appDistribution().isTesterSignedIn) {
  AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
      // completion block for check for update
  })
}

Objectif c

Remarque: Ce produit est disponible sur Mac OS, Mac Catalyst, tvOS ou cibles watchos.
// Sign in a tester without automatically checking for update
if(![[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
    signInTesterWithCompletion:^(NSError *_Nullable error) {
      // completion block for signInTester
     if (error) {
       // handle failed sign in
       return;
     }
      // handle successful sign in
  }];
}

// only check for update if tester is already signed in - do not prompt
if([[FIRAppDistribution appDistribution] isTesterSignedIn]) {
  [[FIRAppDistribution appDistribution]
        checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                       NSError *_Nullable error) {
     // completion block for check for update
  }];
}

Pour plus d' informations sur d' autres méthodes, y compris signOutTester , consultez la documentation de référence de distribution App pour Swift et Objective-C .

Étape 4: construire et tester votre implémentation

Enfin, construire votre application et tester votre implémentation par la distribution de la construction aux testeurs utilisant la console Firebase.

Visitez le Guide de dépannage de distribution App aide à des problèmes communs, tels que:

  • Le testeur ne reçoit pas d'alertes dans l'application
  • Le testeur est invité à se connecter plusieurs fois à Google