للسماح للمستخدمين بالموافقة على استخدام 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علىfalseفي ملفInfo.plistالخاص بتطبيقك.لإيقاف Performance Monitoring تمامًا، بدون خيار تفعيله في وقت التشغيل، اضبط
firebase_performance_collection_deactivatedعلىtrueفي ملفInfo.plistالخاص بتطبيقك.
إيقاف تطبيقك أثناء التشغيل باستخدام Remote Config
تتيح لك ميزة "Firebase Remote Config" إجراء تغييرات على طريقة عمل تطبيقك ومظهره، لذا فهي توفّر طريقة مثالية لإيقاف "Performance Monitoring" في النُسخ المنشورة من تطبيقك.
لإيقاف جمع بيانات Performance Monitoring في المرة التالية التي يبدأ فيها تطبيق Apple، استخدِم نموذج الرمز البرمجي الموضّح أدناه. لمزيد من المعلومات حول استخدام Remote Config في تطبيق Apple، يُرجى الاطّلاع على استخدام Firebase Remote Config على أنظمة Apple الأساسية.
تأكَّد من استخدام Remote Config في
Podfile:pod 'Firebase/RemoteConfig'أضِف ما يلي إلى أعلى ملف
AppDelegateفي تطبيقك:Swift
ملاحظة: لا يتوفّر منتج Firebase هذا على أهداف macOS وMac Catalyst وwatchOS.import FirebaseRemoteConfigObjective-C
ملاحظة: لا يتوفّر منتج Firebase هذا على أهداف macOS وMac Catalyst وwatchOS.@import FirebaseRemoteConfig;في ملف
AppDelegate، أضِف الرمز التالي إلى عباراتlaunchOptionsفي طريقة مثيلapplication:didFinishLaunchingWithOptions::Swift
ملاحظة: لا يتوفّر هذا المنتج على أهداف 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()Objective-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 وتفعيلها:Swift
ملاحظة: لا يتوفّر منتج 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)") } }Objective-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:(بدلاً مما هو موضّح أعلاه لطريقة المثيل نفسها):Swift
ملاحظة: لا يتوفّر منتج 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()Objective-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 في مشروع تطبيقك، ثم اضبط قيمتها على