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


Kullanıcılarınızın Firebase Performance Monitoring kullanımını etkinleştirmesine veya devre dışı bırakmasına izin vermek için uygulamanızı Performance Monitoring'yi etkinleştirebileceğiniz ve devre dışı bırakabileceğiniz şekilde yapılandırmak isteyebilirsiniz. Bu özelliği uygulama geliştirme ve test etme sırasında da faydalı bulabilirsiniz.

Göz önünde bulundurabileceğiniz bazı seçenekler:

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

  • Uygulamanızı Performance Monitoring SDK'sı etkin olarak oluşturabilirsiniz ancak Firebase Remote Config kullanarak çalışma zamanında devre dışı bırakma seçeneğiniz de vardır.

  • Performance Monitoring SDK'yı tamamen devre dışı bırakabilirsiniz. Çalışma zamanında etkinleştirme seçeneği yoktur.

Uygulama derleme sürecinizde Performance Monitoring özelliğini devre dışı bırakma

Uygulama geliştirme ve test aşamasında uygulamanızın yayın öncesi sürümünden performans verilerinin raporlanmasını önlemek için uygulama oluşturma sürecinde Performance Monitoring devre dışı bırakılabilir.

Performance Monitoring'yı devre dışı bırakmak için Apple uygulamanızın özellik listesi dosyasına (Info.plist) aşağıdaki iki anahtardan birini ekleyebilirsiniz:

  • Performance Monitoring özelliğini 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 değerini false olarak ayarlayın.

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

Remote Config kullanarak uygulamanızı çalışma zamanında 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 özelliğini devre dışı bırakmak için ideal bir yöntemdir.

Apple uygulamanız bir sonraki başlatılışında Performance Monitoring veri toplama özelliğini devre dışı bırakmak için aşağıdaki örnek kodu kullanın. Apple uygulamalarında Remote Config kullanma hakkında daha fazla bilgi için Apple platformlarında Firebase Remote Config kullanma başlıklı makaleyi inceleyin.

  1. Remote Config öğesinin Podfile cihazınızda 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 ve watchOS hedeflerinde kullanılamaz.
    import FirebaseRemoteConfig
    

    Objective-C

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

    Swift

    Not: Bu ürün macOS, Mac Catalyst ve 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 ve 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 veya uygulamanız tarafından kullanılan başka bir uygulama dosyasında, Remote Config değerlerini getirmek ve etkinleştirmek için aşağıdaki kodu ekleyin:

    Swift

    Not: Bu Firebase ürünü macOS, Mac Catalyst ve 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 ve 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. Performance Monitoring konsolunda Firebase özelliğini devre dışı bırakmak için uygulamanızın projesinde bir perf_disable parametresi oluşturun ve değerini true olarak ayarlayın.

    perf_disable değerini false olarak ayarlarsanız Performance Monitoring etkin kalır.

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

Yukarıda ve Firebase konsolunda gösterilen kodda bazı değişiklikler yaparak tüm otomatik (hazır) izlemeyi özel izlemeden ayrı olarak devre dışı bırakabilirsiniz.

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

    Swift

    Not: Bu Firebase ürünü macOS, Mac Catalyst ve 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 ve 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ğıdakileri tamamlayın:

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