Bagaimana cara menghentikan Firebase agar tidak mencatat pembaruan status saat aplikasi diluncurkan

98

Setiap kali saya meluncurkan aplikasi FireBase, itu mencatat status berbagai fitur Firebase. Sekarang inilah yang sedang dicatat:

Configuring the default app.

<FIRAnalytics/INFO> Firebase Analytics v.3200000 started

<FIRAnalytics/INFO> To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see ...)

<FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist

<FIRInstanceID/WARNING> FIRInstanceID AppDelegate proxy enabled, will swizzle app delegate remote notification handlers. To disable add "FirebaseAppDelegateProxyEnabled" to your Info.plist and set it to NO

<FIRAnalytics/INFO> Firebase Analytics enabled

Saya melihat-lihat pod dan tidak menemukan pernyataan cetak apa pun, jadi bagaimana lagi saya bisa menghentikan ini dari login lembur saya menjalankan aplikasi?

TekShock
sumber
3
Saya setuju denganmu. Saya juga mencari cara untuk menonaktifkan pesan.
Gui Moura
1
Apakah Anda menemukan metode?
Gilian
Pasti ada kasus untuk mematikan pesan. Tidak peduli berapa banyak dari mereka yang login. Saya tidak keberatan mendapatkan peringatan dan kesalahan, tetapi pesan awal mengganggu, tidak diragukan lagi.
Jakub Truhlář

Jawaban:

118

Anda dapat menonaktifkan logging debug dengan bendera -FIRDebugDisabled.

Anda dapat menambahkannya ke skema Anda :

  1. Pilih toolbar Skema
  2. Edit Skema
  3. Pilih Jalankan
  4. Klik Argumen dan tambahkan -FIRDebugDisabled
Ian Barber
sumber
1
Ah, saya sudah check in dengan para teknisi - pesan-pesan itu akan tetap dicatat. Dengan benderanya, hanya itu yang harus Anda lihat.
Ian Barber
20
A -noFIRAnalyticsDebugEnableddiganti namanya menjadi -FIRDebugDisabled. Langkah lainnya sama.
Marat Saytakov
3
Tidak terlalu bagus (ini kemungkinan besar tidak akan ditambahkan ke repositori kode dll dan dengan demikian akan menyebabkan kode berbeda tergantung pada metode build (pikirkan run / archive)). Secara default, build rilis harus memiliki log OFF ... IMHO 😎
Jonny
1
ini memiliki efek samping yang mengerikan dari pengaktifan mode debug untuk analitik
firebase
63

Tambahkan FirebaseConfiguration.shared.setLoggerLevel(.min)sebelumnyaFirebaseApp.configure() untuk mencapai jumlah minimum penebangan.

func setupFirebase() {
  FirebaseConfiguration.shared.setLoggerLevel(.min)
  FirebaseApp.configure()
}
Raphael Oliveira
sumber
Ini berhasil!
Kyle Goslan
3
Kode telah diperbarui ke FIRConfiguration.sharedInstance (). SetLoggerLevel (.min)
Chrishan
16

Secara default, Firebase akan mencatat info, kesalahan, dan peringatan.
Jadi Anda dapat mengatur tingkat logger yang Anda butuhkan.
Jika Anda menyetel .Error Anda akan mendapatkan log min hanya ketika terjadi kesalahan.

setLoggerLevel sebelum FirebaseApp.configure () seperti yang ditunjukkan di bawah ini

Di Swift 2.3 dan Firebase 4

 FirebaseConfiguration.sharedInstance().setLoggerLevel(.Error)
 FirebaseApp.configure()

Di Swift 3 dan Firebase 4

 FirebaseConfiguration.shared.setLoggerLevel(.min)
 FirebaseApp.configure()
Sujay UN
sumber
Bagaimana saya bisa menulis kode ini di tujuan c. Tolong beri tahu saya terima kasih
Yogesh Patel
16

Dalam kasus saya untuk menyembunyikan potongan ekstra dari log konsol dari Firebase, saya melakukan hal berikut:

  1. Arahkan ke Produk -> Skema -> Edit Skema.
  2. Di bawah tab Argumen di bagian Variabel Lingkungan tambahkan OS_ACTIVITY_MODE = nonaktifkan

masukkan deskripsi gambar di sini

  • Untuk berjaga-jaga jika Anda membutuhkannya, cukup hapus centang pada kotak.
  • Menonaktifkan OS_ACTIVITY_MODE terkadang juga akan menonaktifkan log untuk semua pengecualian

Sunting 1 : Seperti yang dikatakan @ jesus-adolfo-rodriguez, ini terkait dengan Xcode. Jadi, jika Anda tidak ingin OSLog ada di konsol Xcode, letakkan variabel Lingkungan OS_ACTIVITY_MODE ke "nonaktifkan" dalam skema Anda.


Edit 2:

FirebaseConfiguration.shared.setLoggerLevel(FirebaseLoggerLevel.min)
FirebaseApp.configure()

Detail selengkapnya ada di implementasi FIRConfiguration di sini


Sunting 3: 2019

Menurut masalah ini: https://github.com/firebase/firebase-ios-sdk/issues/2774#issuecomment-482780714

Menambahkan argumen -FIRDebugDisabled dan membersihkan proyek berhasil.

Sistem logging di Firebase

Sistem logging memiliki dua mode: mode default dan mode debug. Dalam mode default, hanya log dengan Pemberitahuan, Peringatan, dan Kesalahan level log yang akan dikirim ke perangkat. Dalam mode debug, semua log akan dikirim ke perangkat. Tingkat log yang digunakan Firebase konsisten dengan tingkat log ASL.

Aktifkan mode debug dengan meneruskan argumen -FIRDebugEnabled ke aplikasi. Anda dapat menambahkan argumen ini dalam skema Xcode aplikasi. Jika mode debug diaktifkan melalui -FIRDebugEnabled, eksekusi lebih lanjut dari aplikasi juga akan berada dalam mode debug. Untuk kembali ke mode default, Anda harus secara eksplisit menonaktifkan mode debug dengan argumen aplikasi -FIRDebugDisabled .

Anda juga dapat mengubah tingkat logging default dalam kode dengan memanggil setLoggerLevel: pada antarmuka FIRConfiguration.

Jorge Casariego
sumber
3
ini tidak ada hubungannya dengan firebase
Jesus Rodriguez
dan akan menyembunyikan analitik Anda jika Anda ingin mereka ditampilkan -FIRAnalyticsDebugEnabled
DogCoffee
Ini menonaktifkan semua log untuk saya. Seperti yang Anda katakan di poin terakhir.
R. Mohan
Ini membantu saya mengurangi pesan dari Firebase yang telah dicatat setLoggerLevel(.min)dan -FIRDebugDisabled. Jawaban yang bagus!
kelin
4
Berhenti memberi tahu orang-orang untuk menonaktifkan semua logging.
Claus Jørgensen
7
FIRConfiguration.sharedInstance().setLoggerLevel(.min)
FIRApp.configure()

Di Swift 4

Chatar Veer Suthar
sumber
2
FirebaseConfiguration.shared.setLoggerLevel(.min)di FB 5.14
Adam Waite
6

Swift 4 Firebase 4.10

Setel level logger di AppDelegate.swift Anda

FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)

Ini kode lengkapnya:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)
    FirebaseApp.configure()
    return true
}
Ondřej Ševčík
sumber
4

Secara default, Firebase Analytics hanya akan mencatat 4 baris INFO dalam produksi + kesalahan / peringatan. Itu harus menjadi keluaran yang sangat sedikit jika semuanya bekerja dengan benar. Menambahkan -noFIRAnalyticsDebugEnabled hanya akan menonaktifkan log level DEBUG dan ERROR / WARN selalu dicatat. Jika Anda melihat peringatan atau kesalahan, Anda mungkin perlu melakukan sesuatu untuk menyelesaikan penyebabnya. Beberapa hal mungkin tidak akan berfungsi dengan benar jika peringatan / kesalahan dicatat. Aplikasi yang diatur dengan benar seharusnya tidak mencatat kesalahan / peringatan.

Pesan yang diberi tag FIRInstanceID / * dicatat oleh Firebase Notification dan kesalahan / peringatan selalu dicatat.

djabi
sumber
3

Seperti yang dikatakan djabi, Anda tidak dapat menonaktifkan log tersebut jika berupa INFO, WARNING atau ERROR.

Saya ingin menambahkan jawaban Nitin Gohel karena saya tidak bisa berkomentar: Bendera FirebaseAppDelegateProxyEnabled bukan untuk menonaktifkan log. Jika Anda mematikannya, Anda akan kehilangan pelacakan kampanye otomatis dan Anda perlu menambahkan metode dari FIRAnalytics (AppDelegate) untuk menangani sendiri URL dan aktivitas pengguna.

adbitx
sumber
3

Untuk menambah jawaban Alex, dari https://firebase.google.com/docs/cloud-messaging/ios/client

FirebaseAppDelegateProxyEnabled adalah untuk menipu metode delegasi aplikasi Anda

FCM API melakukan metode swizzling di dua area utama: memetakan token APN Anda ke token pendaftaran FCM dan menangkap data analitik selama penanganan callback pesan downstream. Pengembang yang memilih untuk tidak menggunakan swizzling dapat menonaktifkannya dengan menambahkan bendera FirebaseAppDelegateProxyEnabled di file Info.plist aplikasi dan menyetelnya ke NO (nilai boolean). Area panduan yang relevan memberikan contoh kode, baik dengan atau tanpa mengaktifkan metode swizzling.

onmyway133
sumber
1

Saya pikir sedang terjadi kebingungan besar dan sangat penting.

Dengan menggunakannya -FIRDebugDisabledakan menonaktifkan mode debug yang kemudian pengukuran Anda akan terpengaruh selama pengujian dan pengembangan .

Untuk mengurangi log:

FirebaseConfiguration.shared.setLoggerLevel(.min)
FirebaseApp.configure()

Namun ada bug pada versi 6.18 dan 6.20.

Sebagai solusi, Anda dapat menggunakan -noFIRAnalyticsDebugEnabledyang merupakan hal lain, yang satu ini tidak menonaktifkan mode debug Anda.

rgkobashi
sumber
bug pertama dibuat pada 8 Agustus 2019 dan belum ada perbaikan :( semoga mereka segera memperbaikinya. Kami sedang berpikir untuk pindah ke alat lain, log ini sangat berisi spam
rgkobashi