Firebase Performance Monitoring'i devre dışı bırak

Kullanıcılarınızın Firebase Performance Monitoring'i kullanmayı veya devre dışı bırakmasını sağlamak için uygulamanızı Performance Monitoring'i etkinleştirecek ve devre dışı bırakabileceğiniz şekilde yapılandırmak isteyebilirsiniz. Bu özelliği, uygulama geliştirme ve test etme sırasında da yararlı bulabilirsiniz.

Dikkate alınması gereken bazı seçenekler aşağıda belirtilmiştir:

  • Performance Monitoring SDK'sını uygulamanızı oluştururken devre dışı bırakabilir, çalışma zamanında yeniden etkinleştirebilirsiniz.

  • Performance Monitoring SDK'sını etkinleştirerek uygulamanızı derleyebilir ancak Firebase Remote Config'i kullanarak çalışma zamanında devre dışı bırakabilirsiniz.

  • Performance Monitoring SDK'sını, çalışma zamanında etkinleştirme seçeneği olmadan tamamen devre dışı bırakabilirsiniz.

Uygulama derleme işleminiz sırasında Performance Monitoring'i devre dışı bırakma

Uygulama geliştirme ve test etme sırasında uygulamanızın yayın öncesi sürümüne ait performans verilerinin raporlanmasını önlemek, uygulama derleme sürecinde Performance Monitoring'i devre dışı bırakmanın yararlı olabileceği durumlardan biridir.

Performance Monitoring'i devre dışı bırakmak veya devre dışı bırakmak için Apple uygulamanızın mülk listesi dosyasına (Info.plist) şu iki anahtardan birini ekleyebilirsiniz:

  • Performance Monitoring'i devre dışı bırakmak, ancak uygulamanızın çalışma zamanında etkinleştirmesine izin vermek için uygulamanızın Info.plist dosyasında firebase_performance_collection_enabled öğesini false olarak ayarlayın.

  • Performance Monitoring'i çalışma zamanında etkinleştirme seçeneği olmadan tamamen devre dışı bırakmak için uygulamanızın Info.plist dosyasında firebase_performance_collection_deactivated öğesini true olarak ayarlayın.

Uygulamanızı çalışma zamanında Remote Config'i kullanarak devre dışı bırakma

Firebase Remote Config, uygulamanızın davranışında ve görünümünde değişiklik yapmanıza olanak tanır. Bu nedenle, uygulamanızın dağıtılan örneklerinde Performance Monitoring'i devre dışı bırakmanız için ideal bir yöntem sunar.

Apple uygulamanızın bir sonraki başlatılışında Performance Monitoring veri toplamasını devre dışı bırakmak için aşağıda gösterilen örnek kodu kullanın. Apple uygulamasında Remote Config'i kullanma hakkında daha fazla bilgi için Apple platformlarında Firebase Remote Config'i kullanma bölümüne bakın.

  1. Podfile uygulamanızda Remote Config'in kullanıldığından emin olun:

    pod 'Firebase/RemoteConfig'
    
  2. Uygulamanızın AppDelegate dosyasının en üstüne aşağıdakileri ekleyin:

    Swift

    Not: Bu Firebase ürünü macOS, Mac Catalyst, watchOS hedeflerinde kullanılamaz.
    import FirebaseRemoteConfig
    

    Objective-C

    Not: Bu Firebase ürünü macOS, Mac Catalyst, watchOS hedeflerinde kullanılamaz.
    @import FirebaseRemoteConfig;
    
  3. AppDelegate dosyanızda aşağıdaki kodu application:didFinishLaunchingWithOptions: örnek yöntemindeki launchOptions ifadelerine ekleyin:

    Swift

    Not: Bu ürün macOS, Mac Catalyst, watchOS hedeflerinde kullanılamaz.
    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

    Not: Bu Firebase ürünü macOS, Mac Catalyst, watchOS hedeflerinde kullanılamaz.
    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];
    
  4. ViewController.m ürününde veya uygulamanız tarafından kullanılan başka bir uygulama dosyasında, Remote Config değerlerini getirip etkinleştirmek için aşağıdaki kodu ekleyin:

    Swift

    Not: Bu Firebase ürünü macOS, Mac Catalyst, watchOS hedeflerinde kullanılamaz.
    //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

    Not: Bu Firebase ürünü macOS, Mac Catalyst, watchOS hedeflerinde kullanılamaz.
    //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);
      }
    }];
    
  5. Firebase konsolunda Performance Monitoring'i devre dışı bırakmak için uygulamanızın projesinde bir perf_disable parametresi oluşturup değerini true olarak ayarlayın.

    perf_disable değerini false olarak ayarlarsanız Performans İzleme etkin kalır.

Otomatik veya özel veri toplamayı ayrı olarak devre dışı bırakma

Özel izlemeden ayrı olarak tüm otomatik (kullanıma hazır) izlemeyi devre dışı bırakmak için, yukarıda ve Firebase konsolunda gösterilen kodda bazı değişiklikler yapabilirsiniz.

  1. application:didFinishLaunchingWithOptions: örnek yöntemindeki launchOptions ifadelerine aşağıdaki kodu ekleyin (aynı örnek yöntemi için yukarıda gösterilenler yerine):

    Swift

    Not: Bu Firebase ürünü macOS, Mac Catalyst, watchOS hedeflerinde kullanılamaz.
    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

    Not: Bu Firebase ürünü macOS, Mac Catalyst, watchOS hedeflerinde kullanılamaz.
    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];
    
  2. Firebase konsolunda aşağıdaki işlemleri tamamlayın:

    • Tüm otomatik (kullanıma hazır) izlemeyi devre dışı bırakmak için uygulamanızın projesinde perf_disable_auto parametresi oluşturun ve ardından değerini true olarak ayarlayın.
    • Tüm özel izlemeyi devre dışı bırakmak için uygulamanızın projesinde bir perf_disable_manual parametresi oluşturup değerini true olarak ayarlayın.