مانیتورینگ عملکرد Firebase را غیرفعال کنید

برای اینکه به کاربران خود اجازه دهید از استفاده از Firebase Performance Monitoring انتخاب یا انصراف دهند، ممکن است بخواهید برنامه خود را طوری پیکربندی کنید که بتوانید نظارت بر عملکرد را فعال یا غیرفعال کنید. همچنین ممکن است این قابلیت در طول توسعه و آزمایش برنامه مفید باشد.

در زیر چند گزینه وجود دارد که باید در نظر بگیرید:

  • می‌توانید SDK نظارت بر عملکرد را هنگام ساخت برنامه خود غیرفعال کنید، با گزینه فعال کردن مجدد آن در زمان اجرا.

  • می‌توانید برنامه خود را با فعال کردن SDK نظارت بر عملکرد بسازید، اما می‌توانید آن را در زمان اجرا با استفاده از Firebase Remote Config غیرفعال کنید.

  • شما می توانید SDK نظارت بر عملکرد را به طور کامل غیرفعال کنید، بدون اینکه گزینه ای برای فعال کردن آن در زمان اجرا وجود داشته باشد.

مانیتورینگ عملکرد را در طول فرآیند ساخت اپلیکیشن خود غیرفعال کنید

یکی از موقعیت‌هایی که غیرفعال کردن نظارت بر عملکرد در طول فرآیند ساخت برنامه می‌تواند مفید باشد، اجتناب از گزارش داده‌های عملکرد از نسخه پیش‌انتشار برنامه خود در طول توسعه و آزمایش برنامه است.

برای غیرفعال کردن یا غیرفعال کردن نظارت بر عملکرد، می‌توانید یکی از دو کلید را به فایل فهرست دارایی ( Info.plist ) برای برنامه Apple خود اضافه کنید:

  • برای غیرفعال کردن نظارت بر عملکرد، اما اجازه دهید برنامه شما آن را در زمان اجرا فعال کند، firebase_performance_collection_enabled را در فایل Info.plist برنامه خود روی false قرار دهید.

  • برای غیرفعال کردن کامل مانیتورینگ عملکرد، بدون هیچ گزینه ای برای فعال کردن آن در زمان اجرا، firebase_performance_collection_deactivated را در فایل Info.plist برنامه خود روی true تنظیم کنید.

برنامه خود را در زمان اجرا با استفاده از Remote Config غیرفعال کنید

Firebase Remote Config به شما امکان می دهد تغییراتی در رفتار و ظاهر برنامه خود ایجاد کنید، بنابراین یک راه ایده آل برای غیرفعال کردن نظارت بر عملکرد در نمونه های مستقر در برنامه خود فراهم می کند.

برای غیرفعال کردن جمع‌آوری داده‌های نظارت بر عملکرد دفعه بعد که برنامه Apple شما شروع به کار کرد، از کد مثال زیر استفاده کنید. برای اطلاعات بیشتر در مورد استفاده از Remote Config در برنامه Apple، به استفاده از Firebase Remote Config در پلتفرم‌های Apple مراجعه کنید.

  1. مطمئن شوید که Remote Config در Podfile شما استفاده شده است:

    pod 'Firebase/RemoteConfig'
    
  2. موارد زیر را به بالای فایل AppDelegate برنامه خود اضافه کنید:

    سریع

    توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، watchOS در دسترس نیست.
    import FirebaseRemoteConfig
    

    هدف-C

    توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، watchOS در دسترس نیست.
    @import FirebaseRemoteConfig;
    
  3. در فایل AppDelegate خود، کد زیر را به دستورات launchOptions در application:didFinishLaunchingWithOptions: متد instance:

    سریع

    توجه: این محصول برای اهداف 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()
    

    هدف-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];
    
  4. در 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)")
      }
    }
    

    هدف-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);
      }
    }];
    
  5. برای غیرفعال کردن نظارت بر عملکرد در کنسول Firebase، یک پارامتر perf_disable در پروژه برنامه خود ایجاد کنید، سپس مقدار آن را روی true تنظیم کنید.

    اگر مقدار perf_disable را روی false تنظیم کنید، نظارت بر عملکرد فعال باقی می‌ماند.

جمع آوری داده های خودکار یا سفارشی را جداگانه غیرفعال کنید

می‌توانید در کد نشان‌داده‌شده در بالا و در کنسول Firebase تغییراتی ایجاد کنید تا بتوانید همه نظارت‌های خودکار (خارج از جعبه) را جدا از نظارت سفارشی غیرفعال کنید.

  1. کد زیر را به دستورات launchOptions در application:didFinishLaunchingWithOptions: متد instance اضافه کنید (به جای آنچه در بالا برای روش نمونه مشابه نشان داده شده است):

    سریع

    توجه: این محصول 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()
    

    هدف-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];
    
  2. موارد زیر را در کنسول Firebase تکمیل کنید:

    • برای غیرفعال کردن تمام نظارت های خودکار (خارج از جعبه)، یک پارامتر perf_disable_auto در پروژه برنامه خود ایجاد کنید، سپس مقدار آن را روی true تنظیم کنید.
    • برای غیرفعال کردن تمام نظارت های سفارشی، یک پارامتر perf_disable_manual در پروژه برنامه خود ایجاد کنید، سپس مقدار آن را روی true تنظیم کنید.