Agar pengguna dapat memilih untuk menggunakan atau tidak menggunakan Firebase Performance Monitoring, Anda perlu mengonfigurasi aplikasi agar dapat mengaktifkan dan menonaktifkan Performance Monitoring. Kemampuan ini dapat bermanfaat bagi Anda selama tahap pengembangan dan pengujian aplikasi.
Berikut adalah beberapa opsi yang perlu dipertimbangkan:
Anda dapat menonaktifkan Performance Monitoring SDK saat mem-build aplikasi, dengan opsi untuk mengaktifkannya kembali saat runtime.
Anda dapat mem-build aplikasi dengan Performance Monitoring SDK yang diaktifkan, tetapi juga memiliki opsi untuk menonaktifkannya saat runtime menggunakan Firebase Remote Config.
Anda dapat sepenuhnya menonaktifkan Performance Monitoring SDK, tanpa opsi untuk mengaktifkannya saat runtime.
Menonaktifkan Performance Monitoring selama proses build aplikasi
Salah satu alasan perlunya menonaktifkan Performance Monitoring selama proses build aplikasi adalah untuk menghindari pelaporan data performa dari aplikasi versi pra-rilis selama tahap pengembangan dan pengujian aplikasi.
Untuk mengaktifkan atau menonaktifkan Performance Monitoring, Anda dapat menambahkan salah satu dari dua kunci ke file daftar properti (Info.plist
) untuk aplikasi Apple Anda:
Untuk menonaktifkan Performance Monitoring, tetapi mengizinkan aplikasi Anda untuk mengaktifkannya saat runtime, tetapkan
firebase_performance_collection_enabled
menjadifalse
di fileInfo.plist
aplikasi Anda.Untuk sepenuhnya menonaktifkan Performance Monitoring, tanpa opsi untuk mengaktifkannya saat runtime, tetapkan
firebase_performance_collection_deactivated
ketrue
di fileInfo.plist
aplikasi Anda.
Menonaktifkan aplikasi saat runtime menggunakan Remote Config
Dengan Firebase Remote Config, Anda dapat mengubah perilaku dan tampilan aplikasi. Hal tersebut memberikan cara yang ideal bagi Anda untuk menonaktifkan Performance Monitoring pada instance aplikasi yang di-deploy.
Untuk menonaktifkan pengumpulan data Performance Monitoring saat berikutnya aplikasi Apple Anda dimulai, gunakan kode contoh yang ditunjukkan di bawah ini. Untuk informasi selengkapnya tentang cara menggunakan Remote Config di aplikasi Apple, lihat Menggunakan Firebase Remote Config di platform Apple.
Pastikan Remote Config digunakan di
Podfile
Anda:pod 'Firebase/RemoteConfig'
Tambahkan kode berikut ke bagian atas file
AppDelegate
aplikasi Anda:Swift
Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.import FirebaseRemoteConfig
Objective-C
Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan watchOS.@import FirebaseRemoteConfig;
Dalam file
AppDelegate
Anda, tambahkan kode berikut ke pernyataanlaunchOptions
dalam metode instanceapplication:didFinishLaunchingWithOptions:
:Swift
Catatan: Produk ini tidak tersedia di target macOS, Mac Catalyst, dan 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
Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan 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];
Pada
ViewController.m
, atau file implementasi lain yang digunakan oleh aplikasi Anda, tambahkan kode berikut untuk mengambil dan mengaktifkan value Remote Config:Swift
Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan 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
Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan 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); } }];
Untuk menonaktifkan Performance Monitoring di Firebase console, buat parameter perf_disable di project aplikasi Anda, lalu tetapkan nilainya ke
true
.Jika Anda menetapkan nilai perf_disable ke
false
, Performance Monitoring akan tetap aktif.
Menonaktifkan pengumpulan data otomatis atau khusus secara terpisah
Anda dapat membuat beberapa perubahan pada kode yang ditampilkan di atas dan di Firebase console untuk memungkinkan Anda menonaktifkan semua pemantauan otomatis (bawaan) secara terpisah dari pemantauan kustom.
Tambahkan kode berikut ke pernyataan
launchOptions
dalam metode instanceapplication:didFinishLaunchingWithOptions:
(bukan yang ditunjukkan di atas untuk metode instance yang sama):Swift
Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan 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
Catatan: Produk Firebase ini tidak tersedia di target macOS, Mac Catalyst, dan 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];
Selesaikan langkah-langkah berikut di Firebase console:
- Untuk menonaktifkan semua pemantauan otomatis (bawaan), buat parameter perf_disable_auto di project aplikasi Anda, lalu tetapkan value-nya ke
true
. - Untuk menonaktifkan semua pemantauan kustom, buat parameter perf_disable_manual di project aplikasi Anda, lalu tetapkan value-nya ke
true
.
- Untuk menonaktifkan semua pemantauan otomatis (bawaan), buat parameter perf_disable_auto di project aplikasi Anda, lalu tetapkan value-nya ke