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