Wenn Sie Ihren Nutzern die Möglichkeit geben möchten, Firebase Performance Monitoring zu aktivieren oder zu deaktivieren, sollten Sie Ihre App so konfigurieren, dass Sie Performance Monitoring aktivieren und deaktivieren können. Diese Funktion kann auch während der App-Entwicklung und ‑Tests nützlich sein.
Hier einige Optionen:
Sie können das Performance Monitoring SDK beim Erstellen Ihrer App deaktivieren und es zur Laufzeit wieder aktivieren.
Sie können Ihre App mit aktiviertem Performance Monitoring 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 die Möglichkeit, es zur Laufzeit zu aktivieren.
Performance Monitoring während des App-Build-Prozesses deaktivieren
Eine Situation, in der es sinnvoll sein kann, Performance Monitoring während des App-Build-Prozesses zu deaktivieren, ist, Leistungsdaten aus einer Vorabversion Ihrer App während der App-Entwicklung und ‑Tests nicht zu melden.
Wenn Sie Performance Monitoring deaktivieren möchten, können Sie der
Eigenschaftslistendatei (Info.plist) für Ihre Apple-App einen von zwei Schlüsseln hinzufügen:
Wenn Sie Performance Monitoring deaktivieren, aber Ihrer App erlauben möchten, es zur Laufzeit zu aktivieren, setzen Sie
firebase_performance_collection_enabledauffalsein der DateiInfo.plistIhrer App.Wenn Sie Performance Monitoring vollständig deaktivieren möchten, ohne die Möglichkeit, es zur Laufzeit zu aktivieren, setzen Sie
firebase_performance_collection_deactivatedin der DateiInfo.plistIhrer App auftrue.
App zur Laufzeit mit Remote Config deaktivieren
Firebase Remote Config ermöglicht es Ihnen, Änderungen am Verhalten und Erscheinungsbild Ihrer App vorzunehmen. Daher ist es eine ideale Möglichkeit, Performance Monitoring in bereitgestellten Instanzen Ihrer App zu deaktivieren.
Wenn Sie die Erfassung von Performance Monitoring Daten beim nächsten Start Ihrer Apple-App deaktivieren möchten, verwenden Sie den unten gezeigten Beispielcode. Weitere Informationen zur Verwendung von Remote Config in einer Apple-App finden Sie unter Verwenden Sie Firebase Remote Config auf Apple-Plattformen.
Prüfen Sie, ob Remote Config in Ihrer
Podfileverwendet wird:pod 'Firebase/RemoteConfig'Fügen Sie oben in der Datei
AppDelegateIhrer App Folgendes hinzu:Swift
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.import FirebaseRemoteConfigObjective-C
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.@import FirebaseRemoteConfig;Fügen Sie in der Datei
AppDelegateden folgenden Code zu denlaunchOptions-Anweisungen in der Instanzmethodeapplication:didFinishLaunchingWithOptions:hinzu:Swift
Hinweis:Dieses Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele 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()Objective-C
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele 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.moder einer anderen von Ihrer App verwendeten Implementierungsdatei den folgenden Code hinzu, um Remote Config Werte abzurufen und zu aktivieren:Swift
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele 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)") } }Objective-C
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele 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); } }];Wenn Sie Performance Monitoring in der Firebase Console deaktivieren möchten, erstellen Sie im Projekt Ihrer App einen perf_disable Parameter und setzen Sie seinen Wert auf
true.Wenn Sie den Wert von perf_disable auf
falsesetzen, bleibt Performance Monitoring aktiviert.
Automatische oder benutzerdefinierte Datenerfassung separat deaktivieren
Sie können einige Änderungen am oben gezeigten Code und in der Firebase Konsole vornehmen, damit Sie das gesamte automatische (sofort einsatzbereite) Monitoring separat vom benutzerdefinierten Monitoring deaktivieren können.
Fügen Sie den
launchOptions-Anweisungen in der Instanzmethodeapplication:didFinishLaunchingWithOptions:den folgenden Code hinzu (anstelle des oben gezeigten Codes für dieselbe Instanzmethode):Swift
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele 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()Objective-C
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele 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 Console folgende Schritte aus:
- Wenn Sie das gesamte automatische (sofort einsatzbereite) Monitoring deaktivieren möchten, erstellen Sie im Projekt Ihrer App einen
perf_disable_auto-Parameter und setzen Sie seinen
Wert auf
true. - Wenn Sie das gesamte benutzerdefinierte Monitoring deaktivieren möchten, erstellen Sie im Projekt Ihrer App einen Parameter perf_disable_manual
und setzen Sie seinen Wert auf
true.
- Wenn Sie das gesamte automatische (sofort einsatzbereite) Monitoring deaktivieren möchten, erstellen Sie im Projekt Ihrer App einen
perf_disable_auto-Parameter und setzen Sie seinen
Wert auf