Чтобы позволить вашим пользователям выбирать или отказываться от использования Firebase Performance Monitoring , вы можете настроить свое приложение так, чтобы вы могли включать и отключать Performance Monitoring . Вы также можете найти эту возможность полезной во время разработки и тестирования приложений.
Ниже приведены некоторые варианты для рассмотрения:
Вы можете отключить SDK Performance Monitoring при создании приложения, а затем включить его снова во время выполнения.
Вы можете создать свое приложение с включенным SDK Performance Monitoring , но при этом иметь возможность отключить его во время выполнения с помощью Firebase Remote Config .
Вы можете полностью деактивировать SDK Performance Monitoring , без возможности включить его во время выполнения.
Отключите Performance Monitoring во время процесса сборки приложения
Одной из ситуаций, когда отключение Performance Monitoring во время процесса сборки приложения может быть полезным, является необходимость избежать предоставления данных о производительности предварительной версии приложения во время разработки и тестирования приложения.
Чтобы отключить или деактивировать Performance Monitoring , вы можете добавить один из двух ключей в файл списка свойств ( Info.plist
) для вашего приложения Apple:
Чтобы отключить Performance Monitoring , но разрешить приложению включать его во время выполнения, установите для
firebase_performance_collection_enabled
значениеfalse
в файлеInfo.plist
вашего приложения.Чтобы полностью отключить Performance Monitoring , не имея возможности включить его во время выполнения, установите для параметра
firebase_performance_collection_deactivated
значениеtrue
в файлеInfo.plist
вашего приложения.
Отключите приложение во время выполнения с помощью Remote Config
Firebase Remote Config позволяет вам вносить изменения в поведение и внешний вид вашего приложения, поэтому это идеальный способ отключить Performance Monitoring в развернутых экземплярах вашего приложения.
Чтобы отключить сбор данных Performance Monitoring при следующем запуске вашего приложения Apple, используйте пример кода, показанный ниже. Для получения дополнительной информации об использовании Remote Config в приложении Apple см. раздел Использование Firebase Remote Config на платформах Apple .
Убедитесь, что в вашем
Podfile
используется Remote Config :pod 'Firebase/RemoteConfig'
Добавьте следующее в начало файла
AppDelegate
вашего приложения:Быстрый
Примечание: этот продукт Firebase недоступен на платформах macOS, Mac Catalyst и watchOS.import FirebaseRemoteConfig
Objective-C
Примечание: этот продукт Firebase недоступен на платформах macOS, Mac Catalyst и watchOS.@import FirebaseRemoteConfig;
В файле
AppDelegate
добавьте следующий код к операторамlaunchOptions
в методе экземпляраapplication:didFinishLaunchingWithOptions:
Быстрый
Примечание: этот продукт недоступен на платформах macOS, Mac Catalyst и 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
Примечание: этот продукт Firebase недоступен на платформах macOS, Mac Catalyst и 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];
В
ViewController.m
или другом файле реализации, используемом вашим приложением, добавьте следующий код для извлечения и активации значений Remote Config :Быстрый
Примечание: этот продукт Firebase недоступен на платформах macOS, Mac Catalyst и 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
Примечание: этот продукт Firebase недоступен на платформах macOS, Mac Catalyst и 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); } }];
Чтобы отключить Performance Monitoring в консоли Firebase , создайте параметр perf_disable в проекте вашего приложения, затем установите для него значение
true
.Если установить значение perf_disable равным
false
, Performance Monitoring останется включенным.
Отключить автоматический или пользовательский сбор данных по отдельности
Вы можете внести некоторые изменения в код, показанный выше, и в консоль Firebase , чтобы отключить весь автоматический (встроенный) мониторинг отдельно от пользовательского мониторинга.
Добавьте следующий код в операторы
launchOptions
в методе экземпляраapplication:didFinishLaunchingWithOptions:
(вместо того, что показано выше для того же метода экземпляра):Быстрый
Примечание: этот продукт Firebase недоступен на платформах macOS, Mac Catalyst и 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
Примечание: этот продукт Firebase недоступен на платформах macOS, Mac Catalyst и 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];
Выполните следующие действия в консоли Firebase :
- Чтобы отключить весь автоматический (встроенный) мониторинг, создайте параметр perf_disable_auto в проекте вашего приложения, затем установите его значение
true
. - Чтобы отключить весь пользовательский мониторинг, создайте параметр perf_disable_manual в проекте вашего приложения, затем установите для него значение
true
.
- Чтобы отключить весь автоматический (встроенный) мониторинг, создайте параметр perf_disable_auto в проекте вашего приложения, затем установите его значение