برای اینکه به کاربران خود اجازه دهید از استفاده از 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
را در فایلInfo.plist
برنامه خود رویfalse
قرار دهید.برای غیرفعال کردن کامل Performance Monitoring ، بدون هیچ گزینه ای برای فعال کردن آن در زمان اجرا،
firebase_performance_collection_deactivated
در فایلInfo.plist
برنامه خود رویtrue
تنظیم کنید.
برنامه خود را در زمان اجرا با استفاده از Remote Config غیرفعال کنید
Firebase Remote Config به شما امکان می دهد تغییراتی در رفتار و ظاهر برنامه خود ایجاد کنید، بنابراین یک راه ایده آل برای غیرفعال کردن Performance Monitoring در نمونه های مستقر در برنامه خود فراهم می کند.
برای غیرفعال کردن جمعآوری دادههای Performance Monitoring دفعه بعد که برنامه Apple شما شروع به کار کرد، از کد مثال زیر استفاده کنید. برای اطلاعات بیشتر در مورد استفاده از Remote Config در برنامه Apple، به استفاده از Firebase Remote Config در پلتفرمهای Apple مراجعه کنید.
مطمئن شوید که Remote Config در
Podfile
شما استفاده شده است:pod 'Firebase/RemoteConfig'
موارد زیر را به بالای فایل
AppDelegate
برنامه خود اضافه کنید:سویفت
توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، watchOS در دسترس نیست.import FirebaseRemoteConfig
هدف-C
توجه: این محصول Firebase در اهداف macOS، Mac Catalyst، watchOS در دسترس نیست.@import FirebaseRemoteConfig;
در فایل
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];
در
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); } }];
برای غیرفعال کردن Performance Monitoring در کنسول Firebase ، یک پارامتر perf_disable در پروژه برنامه خود ایجاد کنید، سپس مقدار آن را روی
true
تنظیم کنید.اگر مقدار perf_disable را روی
false
تنظیم کنید، Performance Monitoring فعال باقی میماند.
جمع آوری داده های خودکار یا سفارشی را جداگانه غیرفعال کنید
میتوانید در کد نشاندادهشده در بالا و کنسول Firebase تغییراتی ایجاد کنید تا بتوانید همه نظارتهای خودکار (خارج از جعبه) را جدا از نظارت سفارشی غیرفعال کنید.
کد زیر را به دستورات
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];
موارد زیر را در کنسول Firebase تکمیل کنید:
- برای غیرفعال کردن تمام نظارت های خودکار (خارج از جعبه)، یک پارامتر perf_disable_auto در پروژه برنامه خود ایجاد کنید، سپس مقدار آن را روی
true
تنظیم کنید. - برای غیرفعال کردن تمام نظارت های سفارشی، یک پارامتر perf_disable_manual در پروژه برنامه خود ایجاد کنید، سپس مقدار آن را روی
true
تنظیم کنید.
- برای غیرفعال کردن تمام نظارت های خودکار (خارج از جعبه)، یک پارامتر perf_disable_auto در پروژه برنامه خود ایجاد کنید، سپس مقدار آن را روی