Damit Ihre Benutzer die Verwendung von Firebase Performance Monitoring aktivieren oder deaktivieren können, sollten Sie Ihre App so konfigurieren, dass Sie die Leistungsüberwachung aktivieren und deaktivieren können. Möglicherweise ist diese Funktion auch während der App-Entwicklung und -Tests nützlich.
Im Folgenden sind einige Optionen aufgeführt, die Sie in Betracht ziehen sollten:
Sie können das Leistungsüberwachungs-SDK beim Erstellen Ihrer App deaktivieren, mit der Option, es zur Laufzeit wieder zu aktivieren.
Sie können Ihre App mit aktiviertem Leistungsüberwachungs-SDK erstellen, haben aber die Möglichkeit, es zur Laufzeit mit Firebase Remote Config zu deaktivieren.
Sie können das Performance Monitoring SDK vollständig deaktivieren, ohne dass es zur Laufzeit aktiviert werden kann.
Deaktivieren Sie die Leistungsüberwachung während Ihres App-Erstellungsprozesses
Eine Situation, in der das Deaktivieren der Leistungsüberwachung während Ihres App-Erstellungsprozesses nützlich sein könnte, besteht darin, das Melden von Leistungsdaten aus einer Vorabversion Ihrer App während der App-Entwicklung und des Testens zu vermeiden.
Um die Leistungsüberwachung zu deaktivieren oder zu deaktivieren, können Sie der Eigenschaftslistendatei ( Info.plist
) für Ihre Apple-App einen von zwei Schlüsseln hinzufügen:
Um die Leistungsüberwachung zu deaktivieren, aber Ihrer App zu erlauben, sie zur Laufzeit zu aktivieren, setzen Sie
firebase_performance_collection_enabled
in derInfo.plist
Datei Ihrer App auf „false
.Um die Leistungsüberwachung vollständig zu deaktivieren, ohne dass sie zur Laufzeit aktiviert werden kann, setzen Sie
firebase_performance_collection_deactivated
in der DateiInfo.plist
Ihrer App auf „true
.
Deaktivieren Sie Ihre App zur Laufzeit mit Remote Config
Mit Firebase Remote Config können Sie Änderungen am Verhalten und Erscheinungsbild Ihrer App vornehmen, sodass Sie die Leistungsüberwachung in bereitgestellten Instanzen Ihrer App ideal deaktivieren können.
Verwenden Sie den unten gezeigten Beispielcode, um die Erfassung der Leistungsüberwachungsdaten beim nächsten Start Ihrer Apple-App zu deaktivieren. Weitere Informationen zur Verwendung von Remote Config in einer Apple-App finden Sie unter Verwenden von Firebase Remote Config auf Apple-Plattformen .
Stellen Sie sicher, dass Remote Config in Ihrem
Podfile
verwendet wird:pod 'Firebase/RemoteConfig'
Fügen Sie oben in der
AppDelegate
Datei Ihrer App Folgendes hinzu:Schnell
Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht verfügbar.import FirebaseRemoteConfig
Ziel c
Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht verfügbar.@import FirebaseRemoteConfig;
Fügen Sie in Ihrer
AppDelegate
Datei den folgenden Code zu denlaunchOptions
Anweisungen in der Instanzmethodeapplication:didFinishLaunchingWithOptions:
hinzu:Schnell
Hinweis: Dieses Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht verfügbar.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()
Ziel c
Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht verfügbar.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];
Fügen Sie in
ViewController.m
oder einer anderen von Ihrer App verwendeten Implementierungsdatei den folgenden Code hinzu, um Remote-Konfigurationswerte abzurufen und zu aktivieren:Schnell
Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht verfügbar.//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)") } }
Ziel c
Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht verfügbar.//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); } }];
Um die Leistungsüberwachung in der Firebase-Konsole zu deaktivieren, erstellen Sie einen perf_disable -Parameter im Projekt Ihrer App und setzen Sie dann seinen Wert auf
true
.Wenn Sie den Wert von perf_disable auf
false
setzen, bleibt die Leistungsüberwachung aktiviert.
Deaktivieren Sie die automatische oder benutzerdefinierte Datenerfassung separat
Sie können einige Änderungen am oben gezeigten Code und in der Firebase-Konsole vornehmen, damit Sie die gesamte automatische (standardmäßige) Überwachung getrennt von der benutzerdefinierten Überwachung deaktivieren können.
Fügen Sie den
launchOptions
Anweisungen in derapplication:didFinishLaunchingWithOptions:
Instanzmethode (anstelle dessen, was oben für dieselbe Instanzmethode gezeigt wird):Schnell
Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht verfügbar.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()
Ziel c
Hinweis: Dieses Firebase-Produkt ist auf macOS-, Mac Catalyst- und watchOS-Zielen nicht verfügbar.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];
Führen Sie in der Firebase-Konsole Folgendes aus:
- Um die gesamte automatische (vorkonfigurierte) Überwachung zu deaktivieren, erstellen Sie einen perf_disable_auto -Parameter im Projekt Ihrer App und setzen Sie dann seinen Wert auf
true
. - Um die gesamte benutzerdefinierte Überwachung zu deaktivieren, erstellen Sie einen perf_disable_manual -Parameter im Projekt Ihrer App und setzen Sie dann seinen Wert auf
true
.
- Um die gesamte automatische (vorkonfigurierte) Überwachung zu deaktivieren, erstellen Sie einen perf_disable_auto -Parameter im Projekt Ihrer App und setzen Sie dann seinen Wert auf