Les SDK iOS et Android (facultatifs) Firebase App Distribution vous permettent d'afficher des alertes dans l'application à vos testeurs lorsque de nouvelles versions de votre application sont disponibles. Ce guide explique comment utiliser les App Distribution SDK App Distribution pour iOS et Android afin de créer et de personnaliser des alertes de nouvelle version pour vos testeurs.
Avant de commencer
Si ce n'est pas déjà fait, ajoutez Firebase à votre projet iOS.
Étape 1 : Activer l'API App Distribution Tester
Sélectionnez votre projet dans la Google Cloud console.
Sous API Firebase App Testers, cliquez sur Activer.
Étape 2 : Ajouter App Distribution à votre application
Ouvrez le Podfile que vous avez créé pour le projet (ou exécutez
pod initpour en créer un), puis ajoutez la ligne suivante dans la section cible :pod 'FirebaseAppDistribution'
Dans le répertoire de votre podfile, exécutez
pod install, puis ouvrez le fichier.xcworkspacecréé.Importez le module Firebase dans votre structure
AppouUIApplicationDelegate:Swift
import FirebaseCore import FirebaseAppDistributionObjective-C
@import FirebaseCore; @import FirebaseAppDistribution;Configurez une instance partagée
FirebaseAppdans la méthodeapplication(_:didFinishLaunchingWithOptions:)du délégué de votre application :Swift
// Use Firebase library to configure APIs FirebaseApp.configure()Objective-C
// Use Firebase library to configure APIs [FIRApp configure];Si le swizzling est désactivé, transmettez toutes les URL ouvertes au App Distribution SDK dans votre implémentation de
application(_:open:options:):Swift
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { if AppDistribution.appDistribution().application(application, open: url, options: options) { return true } // Handle other non-Firebase URLs here. return false }Objective-C
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options { if ([[FIRAppDistribution appDistribution] application:app openURL:url options:options]) { return YES; } // Handle other non-Firebase URLs here. return NO; }Enfin, recompilez votre application.
Étape 3 : Configurer les alertes dans l'application
Le App Distribution SDK fournit deux méthodes pour configurer des alertes de build dans l'application pour vos testeurs : une configuration d'alerte de base, qui inclut des boîtes de dialogue prédéfinies de mise à jour de l'application et de connexion à afficher aux testeurs, et une configuration d'alerte avancée, qui vous permet de personnaliser votre propre interface utilisateur. Nous vous recommandons d'utiliser d'abord la configuration d'alerte de base si vous débutez avec le App Distribution SDK.
Configuration de base
Utilisez checkForUpdate pour afficher une boîte de dialogue prédéfinie permettant d'activer les alertes pour les testeurs qui ne les ont pas encore activées, puis vérifiez si une nouvelle version est disponible. Lorsqu'elle est appelée, la méthode exécute la séquence suivante :
Vérifie si un testeur a activé les alertes en l'invitant à se connecter à App Distribution avec son compte Google.
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 lors des 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 que la méthode
signOutTestersoit appelée. Pour en savoir plus, consultez la documentation de référence de la méthode (Swift ou Objective-C) .Recherche les nouvelles versions disponibles que le testeur peut installer.
Vous pouvez appeler 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 onAppear(perform:) de la vue racine de votre application.
L'exemple suivant vérifie si le testeur a activé les alertes et a accès à une nouvelle version. Si c'est le cas, une boîte de dialogue s'affiche lorsque la version est disponible pour l'installation :
Swift
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
if error != nil {
// Handle error
return
}
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)
})
Objective-C
[[FIRAppDistribution appDistribution]
checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
NSError *_Nullable error) {
if (error) {
// Handle error
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 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
Firebase App Distribution compte de testeur. Vous pouvez ainsi choisir d'afficher votre
interface utilisateur de connexion uniquement aux testeurs qui ne se sont pas encore connectés. Une fois que le testeur s'est connecté, vous pouvez appeler checkForUpdate() pour vérifier s'il a accès à une nouvelle version.
Swift
// 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
})
}
Objective-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 en savoir plus sur les autres méthodes, y compris signOutTester(),
consultez la App Distribution documentation de référence pour
Swift
et Objective-C.
Étape 4 : Créer et tester votre implémentation
Enfin, créez votre application et testez votre implémentation en distribuant la version aux testeurs à l'aide de la Firebase console.
Consultez le App Distribution guide de dépannage 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 plus d'une fois.