Pour permettre à vos utilisateurs d'accepter ou de refuser l'utilisation de Firebase Performance Monitoring, vous souhaiterez peut-être configurer votre application afin de pouvoir activer et désactiver la surveillance des performances. Vous pourriez également trouver cette fonctionnalité utile lors du développement et des tests d’applications.
Voici quelques options à considérer :
Vous pouvez désactiver le SDK de surveillance des performances lors de la création de votre application, avec la possibilité de le réactiver au moment de l'exécution.
Vous pouvez créer votre application avec le SDK de surveillance des performances activé, mais vous avez 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 SDK de surveillance des performances, sans possibilité de l'activer au moment de l'exécution.
Désactivez la surveillance des performances pendant le processus de création de votre application
Une situation dans laquelle la désactivation de la surveillance des performances pendant le processus de création de votre application pourrait être utile est d'éviter de signaler les données de performances d'une version préliminaire de votre application pendant le développement et les tests de l'application.
Pour désactiver ou désactiver la surveillance des performances, 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 la surveillance des performances, mais autoriser votre application à l'activer au moment de l'exécution, définissez
firebase_performance_collection_enabled
surfalse
dans le fichierInfo.plist
de votre application.Pour désactiver complètement la surveillance des performances, sans possibilité de l'activer au moment de l'exécution, définissez
firebase_performance_collection_deactivated
surtrue
dans le fichierInfo.plist
de votre application.
Désactivez 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 pour vous permettre de désactiver la surveillance des performances dans les instances déployées de votre application.
Pour désactiver la collecte de données de surveillance des performances au prochain démarrage de votre application Apple, utilisez l'exemple de code ci-dessous. Pour plus d'informations 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 ce qui suit en haut du fichier
AppDelegate
de votre application :Rapide
Remarque : ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et watchOS.import FirebaseRemoteConfig
Objectif c
Remarque : ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et watchOS.@import FirebaseRemoteConfig;
Dans votre fichier
AppDelegate
, ajoutez le code suivant aux instructionslaunchOptions
dans la méthode d'instanceapplication:didFinishLaunchingWithOptions:
: :Rapide
Remarque : ce produit n'est pas disponible sur les cibles macOS, Mac Catalyst et 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()
Objectif c
Remarque : ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et 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 dans un autre fichier d'implémentation utilisé par votre application, ajoutez le code suivant pour récupérer et activer les valeurs de Remote Config :Rapide
Remarque : ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et 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)") } }
Objectif c
Remarque : ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et 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 la surveillance des performances 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
, la surveillance des performances reste activée.
Désactivez séparément la collecte de données automatique ou personnalisée
Vous pouvez apporter quelques modifications au code affiché ci-dessus et dans la console Firebase pour vous permettre de désactiver toute la surveillance automatique (prête à l'emploi) séparément de la surveillance personnalisée.
Ajoutez le code suivant aux instructions
launchOptions
dans la méthode d'instanceapplication:didFinishLaunchingWithOptions:
(au lieu de ce qui est affiché ci-dessus pour la même méthode d'instance) :Rapide
Remarque : ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et 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()
Objectif c
Remarque : ce produit Firebase n'est pas disponible sur les cibles macOS, Mac Catalyst et 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];
Complétez ce qui suit dans la console Firebase :
- Pour désactiver toute surveillance automatique (prête à l'emploi), créez un paramètre perf_disable_auto dans le projet de votre application, puis définissez sa valeur sur
true
. - Pour désactiver toute surveillance personnalisée, créez un paramètre perf_disable_manual dans le projet de votre application, puis définissez sa valeur sur
true
.
- Pour désactiver toute surveillance automatique (prête à l'emploi), créez un paramètre perf_disable_auto dans le projet de votre application, puis définissez sa valeur sur