วิธีหยุด Firebase จากการบันทึกการอัปเดตสถานะเมื่อเปิดตัวแอป


99

เมื่อใดก็ตามที่ฉันเปิดแอป FireBase แอปจะบันทึกสถานะของคุณสมบัติต่างๆของ Firebase ตอนนี้นี่คือสิ่งที่กำลังเข้าสู่ระบบ:

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

ฉันดูในพ็อดและไม่พบข้อความพิมพ์ใด ๆ แล้วฉันจะทำอย่างไรเพื่อหยุดสิ่งเหล่านี้จากการบันทึกการทำงานล่วงเวลาที่ฉันเรียกใช้แอป


3
ฉันเห็นด้วยกับคุณ. ฉันกำลังมองหาวิธีปิดการใช้งานข้อความ
Gui Moura

1
คุณพบวิธีการหรือไม่?
Gilian

ควรมีกรณีปิดข้อความอย่างแน่นอน ไม่สำคัญว่าจะมีกี่คนที่เข้าสู่ระบบ ฉันไม่รังเกียจที่จะรับคำเตือนและข้อผิดพลาด แต่ข้อความเริ่มต้นทำให้เสียสมาธิไม่ต้องสงสัยเลย
Jakub Truhlář

คำตอบ:


121

คุณสามารถปิดใช้งานการบันทึกการดีบักด้วยแฟล็-FIRDebugDisabled

คุณสามารถเพิ่มลงในโครงการของคุณ:

  1. เลือกแถบเครื่องมือScheme
  2. แก้ไขโครงการ
  3. เลือกเรียกใช้
  4. คลิกอาร์กิวเมนต์และเพิ่ม -FIRDebugDisabled

1
ฉันเช็คอินกับวิศวกรแล้วข้อความเหล่านั้นจะถูกบันทึกโดยไม่คำนึงถึง ด้วยธงนั่นคือทั้งหมดที่คุณควรเห็น
Ian Barber

20
A -noFIRAnalyticsDebugEnabledถูกเปลี่ยนชื่อเป็น-FIRDebugDisabled. ขั้นตอนอื่น ๆ ก็เหมือนกัน
Marat Saytakov

3
ไม่ดีจริง ๆ (สิ่งนี้จะไม่ถูกเพิ่มลงในที่เก็บโค้ด ฯลฯ และจะทำให้เกิดรหัสที่แตกต่างกันขึ้นอยู่กับวิธีการสร้าง (คิดว่าเรียกใช้ / เก็บถาวร)) ตามค่าเริ่มต้นรุ่นรุ่นควรมีบันทึกปิด ... IMHO 😎
จอนนี่

1
สิ่งนี้มีผลข้างเคียงที่น่ากลัวของการเปลี่ยนโหมดดีบักสำหรับการวิเคราะห์
firebase

65

เพิ่มFirebaseConfiguration.shared.setLoggerLevel(.min)ก่อนFirebaseApp.configure()เพื่อให้ได้จำนวนขั้นต่ำในการบันทึก

func setupFirebase() {
  FirebaseConfiguration.shared.setLoggerLevel(.min)
  FirebaseApp.configure()
}

นี่มันงาน!
Kyle Goslan

3
รหัสได้รับการอัปเดตเป็น FIRConfiguration.sharedInstance (). setLoggerLevel (.min)
Chrishan

16

โดยค่าเริ่มต้น Firebase จะบันทึกข้อมูลข้อผิดพลาดและคำเตือน
ดังนั้นคุณสามารถตั้งค่าระดับคนตัดไม้ที่คุณต้องการได้
หากคุณตั้งค่าสำหรับ. ข้อผิดพลาดคุณจะได้รับบันทึกขั้นต่ำเมื่อเกิดข้อผิดพลาดเท่านั้น

setLoggerLevel ก่อน FirebaseApp.configure () ดังที่แสดงด้านล่าง

ใน Swift 2.3 และ Firebase 4

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

ใน Swift 3 และ Firebase 4

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

ฉันจะเขียนโค้ดนี้ในวัตถุประสงค์ c ได้อย่างไรช่วยบอกฉันทีขอบคุณ
Yogesh Patel

15

ในกรณีของฉันที่จะซ่อนบันทึกคอนโซลส่วนเกินจาก Firebase ฉันได้ทำสิ่งต่อไปนี้:

  1. ไปที่ Product -> Scheme -> Edit Scheme
  2. ภายใต้แท็บอาร์กิวเมนต์ในส่วนตัวแปรสภาพแวดล้อมให้เพิ่มOS_ACTIVITY_MODE = ปิดใช้งาน

ป้อนคำอธิบายภาพที่นี่

  • ในกรณีที่คุณต้องการเพียงแค่ยกเลิกการเลือกช่องนี้
  • การปิดใช้งานOS_ACTIVITY_MODEบางครั้งจะปิดใช้งานบันทึกสำหรับข้อยกเว้นทั้งหมดเช่นกัน

แก้ไข 1 : ตามที่ @ jesus-adolfo-rodriguez กล่าวสิ่งนี้เกี่ยวข้องกับ Xcode ดังนั้นหากคุณไม่ต้องการ OSLog บนคอนโซล Xcode ให้ใส่ตัวแปรสภาพแวดล้อม OS_ACTIVITY_MODE เพื่อ“ ปิดใช้งาน” ในโครงร่างของคุณ


แก้ไข 2:

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

รายละเอียดเพิ่มเติมในการใช้งาน FIRConfiguration ที่นี่


แก้ไข 3: 2019

ตามประเด็นนี้: https://github.com/firebase/firebase-ios-sdk/issues/2774#issuecomment-482780714

การเพิ่มอาร์กิวเมนต์-FIRDebugDisabledและการล้างโปรเจ็กต์เป็นเคล็ดลับ

ระบบบันทึกใน Firebase

ระบบบันทึกมีสองโหมด: โหมดเริ่มต้นและโหมดดีบัก ในโหมดเริ่มต้นระบบจะส่งเฉพาะบันทึกที่มีระดับการบันทึกข้อสังเกตคำเตือนและข้อผิดพลาดไปยังอุปกรณ์ ในโหมดแก้ไขข้อบกพร่องบันทึกทั้งหมดจะถูกส่งไปยังอุปกรณ์ ระดับการบันทึกที่ Firebase ใช้จะสอดคล้องกับระดับบันทึก ASL

เปิดใช้งานโหมดดีบักโดยส่งอาร์กิวเมนต์ -FIRDebugEnabled ไปยังแอ็พพลิเคชัน คุณสามารถเพิ่มอาร์กิวเมนต์นี้ในโครงร่าง Xcode ของแอปพลิเคชัน เมื่อเปิดใช้งานโหมดดีบักผ่าน -FIRDebugEnabled การดำเนินการเพิ่มเติมของแอปพลิเคชันจะอยู่ในโหมดดีบักด้วย เพื่อที่จะกลับไปยังโหมดเริ่มต้นคุณอย่างชัดเจนจะต้องปิดการใช้งานโหมดการแก้ปัญหาที่มีการโต้แย้งการประยุกต์ใช้-FIRDebugDisabled

นอกจากนี้ยังสามารถเปลี่ยนระดับการบันทึกเริ่มต้นในรหัสโดยเรียกใช้ setLoggerLevel: บนอินเทอร์เฟซ FIRConfiguration


3
สิ่งนี้ไม่เกี่ยวข้องกับ firebase
Jesus Rodriguez

และจะซ่อนการวิเคราะห์ของคุณหากคุณต้องการให้แสดง -FIRAnalyticsDebugEnabled
DogCoffee

1
สิ่งนี้ปิดใช้งานบันทึกทั้งหมดสำหรับฉัน ดังที่คุณกล่าวในข้อสุดท้าย.
R. Mohan

มันช่วยให้ฉันเพื่อลดข้อความจาก Firebase ซึ่งถูกบันทึกไว้ แต่อย่างไรก็ตามและsetLoggerLevel(.min) -FIRDebugDisabledตอบโจทย์มาก!
kelin

4
หยุดบอกให้คนอื่นปิดการบันทึกทั้งหมด
Claus Jørgensen

7

Swift 4 Firebase 4.10.0

ตั้งค่าระดับคนตัดไม้ใน AppDelegate.swift ของคุณ

FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)

นี่คือรหัสเต็ม:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    FirebaseConfiguration().setLoggerLevel(FirebaseLoggerLevel.min)
    FirebaseApp.configure()
    return true
}

1
ตั้งแต่เดือนตุลาคม 2020 นี่เป็นคำตอบเดียวที่กำจัดบันทึก Firebase แต่ทิ้งการบันทึกของฉันไว้คนเดียว ช่วยในการวิเคราะห์สิ่งที่เกิดขึ้นเมื่อเริ่มต้นแอปของคุณ
Jesse Pangburn


4

โดยค่าเริ่มต้น Firebase Analytics จะบันทึกเฉพาะ 4 บรรทัดข้อมูลในการผลิต + ข้อผิดพลาด / คำเตือน นั่นควรเป็นผลลัพธ์ที่น้อยมากหากสิ่งต่างๆทำงานได้อย่างถูกต้อง การเพิ่ม -noFIRAnalyticsDebugEnabled จะปิดใช้งานบันทึกระดับ DEBUG เท่านั้นและ ERROR / WARN จะถูกบันทึกเสมอ หากคุณเห็นคำเตือนหรือข้อผิดพลาดคุณอาจต้องดำเนินการบางอย่างเพื่อแก้ไขสาเหตุ บางอย่างอาจทำงานไม่ถูกต้องหากมีการบันทึกคำเตือน / ข้อผิดพลาด แอปที่ตั้งค่าอย่างถูกต้องไม่ควรบันทึกข้อผิดพลาด / คำเตือน

ข้อความที่ติดแท็ก FIRInstanceID / * จะบันทึกโดย Firebase Notification และบันทึกข้อผิดพลาด / คำเตือนไว้เสมอ


3

ดังที่ djabi กล่าวไว้คุณไม่สามารถปิดใช้งานบันทึกเหล่านั้นได้หากเป็นข้อมูลคำเตือนหรือข้อผิดพลาด

ฉันต้องการเพิ่มคำตอบของ Nitin Gohel เนื่องจากฉันไม่สามารถแสดงความคิดเห็นได้: ค่าสถานะFirebaseAppDelegateProxyEnabledไม่ได้มีไว้สำหรับปิดการใช้งานบันทึก หากคุณปิดคุณจะสูญเสียการติดตามแคมเปญอัตโนมัติและคุณจะต้องเพิ่มวิธีการจาก FIRAnalytics (AppDelegate) เพื่อจัดการ URL และกิจกรรมของผู้ใช้ด้วยตัวคุณเอง


3

หากต้องการเพิ่มคำตอบของ Alex จากhttps://firebase.google.com/docs/cloud-messaging/ios/client

FirebaseAppDelegateProxyEnabled มีไว้สำหรับการสลับวิธีการของผู้แทนแอป

FCM API ดำเนินการสลับเมธอดในสองส่วนหลัก: การแมปโทเค็น APN ของคุณกับโทเค็นการลงทะเบียน FCM และการรวบรวมข้อมูลการวิเคราะห์ระหว่างการจัดการการเรียกกลับข้อความดาวน์สตรีม นักพัฒนาที่ไม่ต้องการใช้ swizzling สามารถปิดใช้งานได้โดยเพิ่มค่าสถานะFirebaseAppDelegateProxyEnabledในไฟล์ Info.plist ของแอปและตั้งค่าเป็น NO (ค่าบูลีน) ส่วนที่เกี่ยวข้องของคำแนะนำจะให้ตัวอย่างโค้ดทั้งที่เปิดใช้งานการสลับเมธอดและไม่มีเมธอด


1

ฉันคิดว่ามีความสับสนครั้งใหญ่และสำคัญมากเกิดขึ้น

การใช้งาน-FIRDebugDisabledจะปิดใช้งานโหมดดีบักซึ่งการวัดของคุณจะได้รับผลกระทบระหว่างการทดสอบและการพัฒนาวัดจะได้รับผลกระทบในระหว่างการทดสอบและการพัฒนา

ขณะนี้ยังไม่มีวิธีเปิดใช้งานโหมดดีบักและปิดใช้งานบันทึกในเวลาเดียวกัน ดังนั้นFirebaseConfiguration.shared.setLoggerLevel(.min)จะทำงานโดยทั่วไปในโหมดไม่ดีบักเท่านั้น

วิธีแก้ปัญหาที่คุณสามารถใช้-noFIRAnalyticsDebugEnabledสำหรับการบันทึกคอนโซล Xcodeเท่านั้นโหมดนี้จะไม่ปิดใช้งานโหมดดีบักของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.