Google 致力于为黑人社区推动种族平等。查看具体举措
Cette page a été traduite par l'API Cloud Translation.
Switch to English

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

Le SDK Firebase App Distribution, dont l'utilisation est facultative, vous permet d'afficher des alertes dans l'application à vos testeurs lorsque de nouvelles versions de votre application sont disponibles à 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 ne l'avez pas déjà fait, ajoutez Firebase à votre projet iOS .

Étape 1 : Activez l'API App Distribution Tester

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

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

Étape 2 : Ajoutez la distribution d'applications à votre application

Nous vous recommandons d'utiliser CocoaPods pour installer les bibliothèques Firebase. Cependant, si vous préférez ne pas utiliser CocoaPods, vous pouvez intégrer directement les frameworks SDK .

  1. Ouvrez le podfile que vous avez créé pour le projet (ou exécutez pod init pour en créer un), puis ajoutez la ligne suivante dans la section cible:

    pod 'Firebase/AppDistribution'
  2. Dans le répertoire de votre fichier pod install , exécutez l' pod install , puis ouvrez le fichier .xcworkspace créé.

  3. Encodez votre identifiant d'application Google ( requis uniquement pour les versions iOS 9 et 10 ):

    Encodez votre identifiant d'application Google

    Ajoutez le schéma d'URL appdistribution-<encoded-google-app-id> en incluant l'extrait de Info.plist file dans votre Info.plist file (reportez-vous à la documentation d' Apple pour savoir comment 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 votre identifiant d'application Google se trouve dans votre fichier GoogleService-Info.plist . Par exemple, si votre ID d'application Google est:

    7:77777777777:ios:123456789

    Votre identifiant d'application Google encodé est:

    7-77777777777-ios-123456789
  4. Importez le module Firebase dans votre UIApplicationDelegate :

    Rapide

    import Firebase
    

    Objectif c

    @import Firebase;
    
  5. Configurez une instance partagée FirebaseApp , généralement dans l'application de votre application:didFinishLaunchingWithOptions: method:

    Rapide

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

    Objectif c

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

Étape 3 : Configurer les alertes dans l'application

Le SDK App Distribution offre deux façons 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 aux testeurs, et une configuration d'alerte avancée, qui vous permet de personnalisez votre propre interface utilisateur (UI). Si vous êtes nouveau dans l'utilisation du SDK, nous vous recommandons d'essayer d'abord la configuration d'alerte de base.

Configuration de base

Utilisez checkForUpdate pour afficher une checkForUpdate de dialogue d'activation d'alertes prédéfinie aux testeurs qui n'ont pas encore activé les alertes, puis vérifiez si une nouvelle version est disponible. Lorsqu'elle est appelée, la méthode exécute 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 dans les mises à jour de votre application. Une fois activées, les alertes restent activées sur l'appareil jusqu'à ce que l'application soit désinstallée ou jusqu'à ce que la méthode signOutTester soit appelée (pour plus d'informations sur cette méthode de configuration avancée, consultez la documentation de référence App Distribution pour Swift et Objective-C ).

  3. Recherche les versions nouvellement disponibles que le testeur doit installer.

Par exemple, le code suivant vérifie que le testeur a activé les alertes et a accès à une nouvelle version:

Rapide

AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
// Includes a pre-built enable alerts dialogue that lets your tester enable alerts.
// You can also customize your own user interface that prompts the tester to
// install a newly available distribution (refer to sample code below).
})

Objectif c

[[FIRAppDistribution appDistribution]
    checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                   NSError *_Nullable error) {
// Includes a pre-built enable alerts dialogue that lets your tester enable alerts.
// You can also customize your own user interface that prompts the tester to
// install a newly available distribution (refer to sample code below).
}];

Notez que vous pouvez inclure cette méthode à 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 de UIViewController .

L'exemple suivant affiche une boîte de dialogue pour le testeur lorsqu'une nouvelle version est disponible pour l'installation:

Rapide

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

[[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];
  }
}];

Pour plus d'informations sur les méthodes supplémentaires, consultez la documentation de référence App Distribution pour Swift et Objective-C .

Configuration avancée

Les méthodes signInTester et isTesterSignedIn vous offrent plus de flexibilité pour personnaliser l'expérience de connexion de votre testeur, afin qu'il 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 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.

Rapide

// 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

// 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 les méthodes supplémentaires, y compris signOutTester , consultez la documentation de référence App Distribution pour Swift et Objective-C .

Étape 4 : Créez et testez votre implémentation

Enfin, créez votre application et testez votre implémentation en distribuant la version aux testeurs à l'aide de la console Firebase.

Consultez le guide de dépannage de la distribution d'applications pour obtenir de l'aide sur les problèmes courants, tels que:

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