Wenn Sie möchten, dass Nutzer Firebase Performance Monitoring aktivieren oder deaktivieren können, sollten Sie Ihre App so konfigurieren, dass Sie Firebase Performance Monitoring aktivieren und deaktivieren können.Performance Monitoring Diese Funktion kann auch bei der App-Entwicklung und -Testung nützlich sein.
Sie haben folgende Möglichkeiten:
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, es aber bei Bedarf mit Firebase Remote Config laufzeitabhängig deaktivieren.
Sie können das Performance Monitoring SDK vollständig deaktivieren, ohne dass es zur Laufzeit aktiviert werden kann.
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, wenn Sie während der App-Entwicklung und -Tests keine Leistungsdaten aus einer Pre-Release-Version Ihrer App erfassen möchten.
Wenn Sie Performance Monitoring deaktivieren möchten, können Sie der Property-Liste (Info.plist
) Ihrer Apple-App einen der beiden folgenden Schlüssel hinzufügen:
Wenn Sie Performance Monitoring deaktivieren, aber zulassen möchten, dass Ihre App es zur Laufzeit aktiviert, setzen Sie in der
Info.plist
-Datei Ihrer Appfirebase_performance_collection_enabled
auffalse
.Wenn Sie Performance Monitoring vollständig deaktivieren möchten, ohne dass es zur Laufzeit aktiviert werden kann, setzen Sie in der
Info.plist
-Datei Ihrer Appfirebase_performance_collection_deactivated
auftrue
.
Anwendung mit Remote Config zur Laufzeit deaktivieren
Mit Firebase Remote Config können Sie das Verhalten und die Darstellung Ihrer App ändern. So können Sie Performance Monitoring in bereitgestellten Instanzen Ihrer App deaktivieren.
Wenn Sie die Erhebung von Performance Monitoring-Daten beim nächsten Starten Ihrer Apple-App deaktivieren möchten, verwenden Sie den unten stehenden Beispielcode. Weitere Informationen zur Verwendung von Remote Config in einer Apple-App finden Sie unter Firebase Remote Config auf Apple-Plattformen verwenden.
Achten Sie darauf, dass Remote Config in Ihrem
Podfile
verwendet wird:pod 'Firebase/RemoteConfig'
Fügen Sie der Datei
AppDelegate
Ihrer App oben Folgendes hinzu:Swift
Hinweis:Dieses Firebase-Produkt ist nicht für macOS-, Mac Catalyst- und watchOS-Ziele verfügbar.import FirebaseRemoteConfig
Objective-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
AppDelegate
denlaunchOptions
-Anweisungen in derapplication:didFinishLaunchingWithOptions:
-Instanzmethode den folgenden Code 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.m
oder einer anderen Implementierungsdatei, die von Ihrer App verwendet wird, 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-Konsole deaktivieren möchten, erstellen Sie im Projekt Ihrer App den Parameter perf_disable und legen Sie seinen Wert auf
true
fest.Wenn Sie den Wert von perf_disable auf
false
festlegen, bleibt Performance Monitoring aktiviert.
Automatische oder benutzerdefinierte Datenerhebung separat deaktivieren
Sie können einige Änderungen am Code oben und in der Firebase-Konsole vornehmen, um die gesamte automatische (vorkonfigurierte) Überwachung separat von der benutzerdefinierten Überwachung zu deaktivieren.
Fügen Sie den
launchOptions
-Anweisungen in derapplication:didFinishLaunchingWithOptions:
-Instanzmethode den folgenden Code hinzu (anstelle des oben für dieselbe Instanzmethode gezeigten Codes):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-Konsole die folgenden Schritte aus:
- Wenn Sie die gesamte automatische (standardmäßige) Überwachung deaktivieren möchten, erstellen Sie im Projekt Ihrer App den Parameter perf_disable_auto und legen Sie seinen Wert auf
true
fest. - Wenn Sie die gesamte benutzerdefinierte Überwachung deaktivieren möchten, erstellen Sie im Projekt Ihrer App den Parameter perf_disable_manual und legen Sie als Wert
true
fest.
- Wenn Sie die gesamte automatische (standardmäßige) Überwachung deaktivieren möchten, erstellen Sie im Projekt Ihrer App den Parameter perf_disable_auto und legen Sie seinen Wert auf