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?


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

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()
}

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()

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.


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


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
}

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.


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.


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.


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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.