Aby umożliwić użytkownikom akceptację lub odrzucenie Firebase Performance Monitoring, możesz skonfigurować aplikację tak, aby można było włączać i wyłączać Performance Monitoring. Ta funkcja może być też przydatna podczas tworzenia i testowania aplikacji.
Oto kilka opcji, które warto wziąć pod uwagę:
Podczas kompilowania aplikacji możesz wyłączyć pakiet SDK Performance Monitoring, zachowując możliwość jego ponownego włączenia w czasie działania.
Aplikację możesz skompilować z włączonym pakietem SDK Performance Monitoring, ale masz też możliwość jej wyłączenia w czasie działania za pomocą pakietu Firebase Remote Config.
Możesz całkowicie dezaktywować pakiet SDK Performance Monitoring bez możliwości włączania go w czasie działania.
Wyłącz Performance Monitoring podczas procesu kompilacji aplikacji
Jedną z sytuacji, w której wyłączenie Performance Monitoring w procesie kompilacji aplikacji może być uniknięcie raportowania danych o wydajności jeszcze przedpremierowej wersji aplikacji podczas jej tworzenia i testowania.
Aby wyłączyć lub dezaktywować Performance Monitoring, możesz dodać jeden z tych 2 kluczy do pliku z listą właściwości (Info.plist
) aplikacji Apple:
Aby wyłączyć usługę Performance Monitoring, ale zezwolić aplikacji na jej włączanie w czasie działania, ustaw opcję
firebase_performance_collection_enabled
nafalse
w plikuInfo.plist
aplikacji.Aby całkowicie wyłączyć funkcję Performance Monitoring bez możliwości włączania jej w czasie działania, ustaw
firebase_performance_collection_deactivated
natrue
w plikuInfo.plist
Twojej aplikacji.
Wyłączaj aplikację w czasie działania za pomocą funkcji Remote Config
Firebase Remote Config umożliwia modyfikowanie działania i wyglądu aplikacji, więc stanowi idealny sposób wyłączania Performance Monitoring we wdrożonych instancjach aplikacji.
Aby wyłączyć Performance Monitoring zbieranie danych przy następnym uruchomieniu aplikacji Apple, użyj przykładowego kodu pokazanego poniżej. Więcej informacji o używaniu usługi Remote Config w aplikacji Apple znajdziesz w artykule Korzystanie z Firebase Remote Config na platformach Apple.
Upewnij się, że
Podfile
używa Remote Config:pod 'Firebase/RemoteConfig'
U góry pliku
AppDelegate
aplikacji dodaj te informacje:Swift
Uwaga: ta usługa Firebase nie jest dostępna na systemy docelowe macOS, Mac Catalyst i watchOS.import FirebaseRemoteConfig
Objective-C
Uwaga: ta usługa Firebase nie jest dostępna w przypadku docelowych platform macOS, Mac Catalyst i watchOS.@import FirebaseRemoteConfig;
W pliku
AppDelegate
dodaj ten kod do instrukcjilaunchOptions
w metodzie instancjiapplication:didFinishLaunchingWithOptions:
:Swift
Uwaga: ten produkt nie jest dostępny na platformach macOS, Mac Catalyst i 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
Uwaga: ta usługa Firebase nie jest dostępna na systemy docelowe macOS, Mac Catalyst i 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];
W pliku
ViewController.m
lub innym pliku implementacji używanym przez aplikację dodaj ten kod, aby pobierać i aktywować wartości Remote Config:Swift
Uwaga: ta usługa Firebase nie jest dostępna na systemy docelowe macOS, Mac Catalyst i 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
Uwaga: ta usługa Firebase nie jest dostępna na systemy docelowe macOS, Mac Catalyst i 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); } }];
Aby wyłączyć Performance Monitoring w konsoli Firebase, utwórz w projekcie aplikacji parametr perf_disable i ustaw jego wartość na
true
.Jeśli ustawisz wartość perf_disable na
false
, Performance Monitoring pozostanie włączona.
Osobne wyłączanie automatycznego lub niestandardowego zbierania danych
Możesz wprowadzić pewne zmiany w kodzie pokazanym powyżej i w konsoli Firebase, aby umożliwić wyłączenie całego automatycznego (gotowego) monitorowania niezależnie od monitorowania niestandardowego.
Dodaj ten kod do instrukcji
launchOptions
w metodzie instancjiapplication:didFinishLaunchingWithOptions:
(zamiast tego kodu pokazanego powyżej w przypadku tej samej metody instancji):Swift
Uwaga: ta usługa Firebase nie jest dostępna na systemy docelowe macOS, Mac Catalyst i 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
Uwaga: ta usługa Firebase nie jest dostępna w przypadku docelowych systemów macOS, Mac Catalyst i 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];
W konsoli Firebase wykonaj te czynności:
- Aby wyłączyć całe automatyczne (niestandardowe) monitorowanie, utwórz parametr perf_disable_auto w projekcie aplikacji, a następnie ustaw jego wartość na
true
. - Aby wyłączyć wszystkie niestandardowe monitorowanie, utwórz w projekcie aplikacji parametr perf_disable_manual i ustaw jego wartość na
true
.
- Aby wyłączyć całe automatyczne (niestandardowe) monitorowanie, utwórz parametr perf_disable_auto w projekcie aplikacji, a następnie ustaw jego wartość na