Pour permettre à vos utilisateurs d'utiliser ou non Firebase Performance Monitoring, vous pouvez configurer votre application de sorte à pouvoir activer et désactiver Performance Monitoring. Vous pouvez également trouver cette fonctionnalité utile lors du développement et des tests de votre application.
Voici quelques options à prendre en compte :
Vous pouvez désactiver le SDK Performance Monitoring lors de la compilation de votre application, avec la possibilité de le réactiver au moment de l'exécution.
Vous pouvez compiler votre application avec le SDK Performance Monitoring activé, mais avoir la possibilité de le désactiver au moment de l'exécution à l'aide de Firebase Remote Config.
Vous pouvez désactiver complètement le Performance Monitoring SDK, sans possibilité de l'activer au moment de l'exécution.
Désactiver Performance Monitoring pendant le processus de compilation de votre application
Il peut être utile de désactiver Performance Monitoring pendant le processus de compilation de votre application pour être utile est d'éviter de générer des rapports sur les données de performances d'une version préliminaire de votre application lors du développement et des tests.
Pour désactiver ou désactiver Performance Monitoring, vous pouvez ajouter l'une des deux clés au
fichier de liste de propriétés (Info.plist) de votre application Apple :
Pour désactiver Performance Monitoring, mais autoriser votre application à l'activer au moment de l'exécution, définissez
firebase_performance_collection_enabledsurfalsedans le fichierInfo.plistde votre application.Pour désactiver complètement Performance Monitoring, sans possibilité de l'activer au moment de l'exécution, définissez
firebase_performance_collection_deactivatedsurtruedans le fichierInfo.plistde votre application.
Désactiver votre application au moment de l'exécution à l'aide de Remote Config
Firebase Remote Config vous permet de modifier le comportement et l'apparence de votre application. Il constitue donc un moyen idéal de désactiver Performance Monitoring dans les instances déployées de votre application.
Pour désactiver la collecte de données Performance Monitoring au prochain démarrage de votre application Apple, utilisez l'exemple de code ci-dessous. Pour en savoir plus sur l'utilisation de Remote Config dans une application Apple, consultez Utiliser Firebase Remote Config sur les plates-formes Apple.
Assurez-vous que Remote Config est utilisé dans votre
Podfile:pod 'Firebase/RemoteConfig'Ajoutez les éléments suivants en haut du fichier
AppDelegatede votre application :Swift
Remarque : Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst ni les cibles watchOS.import FirebaseRemoteConfigObjective-C
Remarque : Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst ni les cibles watchOS.@import FirebaseRemoteConfig;Dans votre fichier
AppDelegate, ajoutez le code suivant aux instructionslaunchOptionsdans la méthode d'instanceapplication:didFinishLaunchingWithOptions::Swift
Remarque : Ce produit n'est pas disponible sur macOS, Mac Catalyst ni les cibles watchOS.remoteConfig = RemoteConfig.remoteConfig() // You can change the "false" below to "true" to permit more fetches when validating // your app, but you should change it back to "false" or remove this statement before // distributing your app in production. let remoteConfigSettings = RemoteConfigSettings(developerModeEnabled: false) remoteConfig.configSettings = remoteConfigSettings! // Load in-app defaults from a plist file that sets perf_disable to false until // you update values in the Firebase console. remoteConfig.setDefaultsFromPlistFileName("RemoteConfigDefaults") // Important! This needs to be applied before FirebaseApp.configure() if !remoteConfig["perf_disable"].boolValue { // The following line disables all automatic (out-of-the-box) monitoring Performance.sharedInstance().isInstrumentationEnabled = false // The following line disables all custom monitoring Performance.sharedInstance().isDataCollectionEnabled = false } else { Performance.sharedInstance().isInstrumentationEnabled = true Performance.sharedInstance().isDataCollectionEnabled = true } // Use Firebase library to configure APIs FirebaseApp.configure()Objective-C
Remarque : Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst ni les cibles watchOS.self.remoteConfig = [FIRRemoteConfig remoteConfig]; // You can change the NO below to YES to permit more fetches when validating // your app, but you should change it back to NO or remove this statement before // distributing your app in production. FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:NO]; self.remoteConfig.configSettings = remoteConfigSettings; // Load in-app defaults from a plist file that sets perf_disable to false until // you update values in the Firebase console. [self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"]; // Important! This needs to be applied before [FIRApp configure] if (!self.remoteConfig[@"perf_disable"].numberValue.boolValue) { // The following line disables all automatic (out-of-the-box) monitoring [FIRPerformance sharedInstance].instrumentationEnabled = NO; // The following line disables all custom monitoring [FIRPerformance sharedInstance].dataCollectionEnabled = NO; } else { [FIRPerformance sharedInstance].instrumentationEnabled = YES; [FIRPerformance sharedInstance].dataCollectionEnabled = YES; } // Use Firebase library to configure APIs [FIRApp configure];Dans
ViewController.m, ou un autre fichier d'implémentation utilisé par votre application, ajoutez le code suivant pour récupérer et activer les valeurs Remote Config :Swift
Remarque : Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst ni les cibles watchOS.//RemoteConfig fetch and activation in your app, shortly after startup remoteConfig.fetch(withExpirationDuration: TimeInterval(30.0)) { (status, error) -> Void in if status == .success { print("Config fetched!") self.remoteConfig.activateFetched() } else { print("Config not fetched") print("Error \(error!.localizedDescription)") } }Objective-C
Remarque : Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst ni les cibles watchOS.//RemoteConfig fetch and activation in your app, shortly after startup [self.remoteConfig fetchWithExpirationDuration:30.0 completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) { if (status == FIRRemoteConfigFetchStatusSuccess) { NSLog(@"Config fetched!"); [self.remoteConfig activateFetched]; } else { NSLog(@"Config not fetched"); NSLog(@"Error %@", error.localizedDescription); } }];Pour désactiver Performance Monitoring dans la console Firebase, créez un paramètre perf_disable dans le projet de votre application, puis définissez sa valeur sur
true.Si vous définissez la valeur de perf_disable sur
false, Performance Monitoring reste activé.
Désactiver séparément la collecte de données automatique ou personnalisée
Vous pouvez apporter quelques modifications au code présenté ci-dessus et dans la console Firebase pour désactiver toute la surveillance automatique (prête à l'emploi) séparément de la surveillance personnalisée.
Ajoutez le code suivant aux instructions
launchOptionsdans la méthode d'instanceapplication:didFinishLaunchingWithOptions:(au lieu de ce qui est indiqué ci-dessus pour la même méthode d'instance) :Swift
Remarque : Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst ni les cibles watchOS.remoteConfig = FIRRemoteConfig.remoteConfig() let remoteConfigSettings = FIRRemoteConfigSettings(developerModeEnabled: true) remoteConfig.configSettings = remoteConfigSettings! // Important! This needs to be applied before FirebaseApp.configure() if remoteConfig["perf_disable_auto"].boolValue { // The following line disables all automatic (out-of-the-box) monitoring Performance.sharedInstance().isInstrumentationEnabled = false } else { Performance.sharedInstance().isInstrumentationEnabled = true } if remoteConfig["perf_disable_manual"].boolValue { // The following line disables all custom monitoring Performance.sharedInstance().isDataCollectionEnabled = false } else { Performance.sharedInstance().isDataCollectionEnabled = true } // Use Firebase library to configure APIs FirebaseApp.configure()Objective-C
Remarque : Ce produit Firebase n'est pas disponible sur macOS, Mac Catalyst ni les cibles watchOS.self.remoteConfig = [FIRRemoteConfig remoteConfig]; FIRRemoteConfigSettings *remoteConfigSettings = [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:YES]; self.remoteConfig.configSettings = remoteConfigSettings; // Important! This needs to be applied before [FirebaseApp configure] if (self.remoteConfig[@"perf_disable_auto"].numberValue.boolValue) { // The following line disables all automatic (out-of-the-box) monitoring [FIRPerformance sharedInstance].instrumentationEnabled = NO; } else { [FIRPerformance sharedInstance].instrumentationEnabled = YES; } if (self.remoteConfig[@"perf_disable_manual"].numberValue.boolValue) { // The following line disables all custom monitoring [FIRPerformance sharedInstance].dataCollectionEnabled = NO; } else { [FIRPerformance sharedInstance].dataCollectionEnabled = YES; } // Use Firebase library to configure APIs [FirebaseApp configure];Effectuez les opérations suivantes dans la Firebase console :
- Pour désactiver toute la surveillance automatique (prête à l'emploi), créez un
perf_disable_auto paramètre dans le projet de votre application, puis définissez sa
valeur sur
true. - Pour désactiver toute la surveillance personnalisée, créez un perf_disable_manual
paramètre dans le projet de votre application, puis définissez sa valeur sur
true.
- Pour désactiver toute la surveillance automatique (prête à l'emploi), créez un
perf_disable_auto paramètre dans le projet de votre application, puis définissez sa
valeur sur