ปรับแต่งรายงานข้อขัดข้องของ Firebase Crashlytics

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

  • รับบันทึกเบรดครัมบ์โดยอัตโนมัติหากแอปของคุณใช้ Firebase SDK สำหรับ Google Analytics บันทึกเหล่านี้ช่วยให้คุณทราบถึง การดำเนินการของผู้ใช้ที่นำไปสู่เหตุการณ์ที่รวบรวม Crashlytics ในแอป

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

รายงานข้อยกเว้น

รายงานข้อยกเว้นที่พบ

หากมีข้อยกเว้นที่คาดไว้ คุณก็มี Crashlytics SDK ได้ รายงานว่าเป็นเหตุการณ์ที่ไม่ร้ายแรง เหตุการณ์เหล่านี้จะได้รับการบันทึกไว้ในอุปกรณ์และ จากนั้นจะส่งไปพร้อมกับรายงานเหตุการณ์ร้ายแรงถัดไป หรือเมื่อผู้ใช้ปลายทางรีสตาร์ท เกมนี้

คุณสามารถบันทึกข้อยกเว้นใน C# ได้โดยใช้วิธีการต่อไปนี้

Crashlytics.LogException(Exception ex);

คุณบันทึกข้อยกเว้นที่คาดไว้ในคำสั่งลอง/จับบล็อกของเกมได้โดยทำดังนี้

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

รายงานข้อยกเว้นที่ตรวจไม่พบ

สำหรับข้อยกเว้นที่ตรวจไม่พบที่ไม่ทำให้เกมขัดข้อง (เช่น ไม่ได้ตรวจจับ ข้อยกเว้น C# ในตรรกะเกม) คุณให้ Crashlytics SDK รายงานได้ เป็นเหตุการณ์ร้ายแรงโดยการตั้งค่า พร็อพเพอร์ตี้ Crashlytics.ReportUncaughtExceptionsAsFatal ไปยัง true ในตำแหน่งต่อไปนี้ เริ่มต้น Crashlytics ในโปรเจ็กต์ Unity ที่ใช้เวลาเพียง 2 นาที ระบบจะรายงานเหตุการณ์เหล่านี้ไปยัง Crashlytics แบบเรียลไทม์โดยไม่จำเป็นต้อง ผู้ใช้ปลายทางเพื่อเริ่มเกมใหม่

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

โปรดทราบว่าระบบจะรายงานข้อขัดข้องของระบบเป็นเหตุการณ์ที่ร้ายแรงเสมอ เหล่านี้ กิจกรรมจะบันทึกบนอุปกรณ์ จากนั้นจะส่งไปเมื่อผู้ใช้ปลายทางรีสตาร์ท เกม

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

รวมรายงาน GWP-ASan เพื่อแก้ปัญหาหน่วยความจำเสียหาย

สำหรับแอป Android ที่ใช้ IL2CPP Crashlytics จะช่วยแก้ไขข้อบกพร่องของข้อขัดข้องได้ เกิดจากข้อผิดพลาดด้านหน่วยความจําของระบบจากการรวบรวมรายงาน GWP-ASan เหล่านี้ ข้อผิดพลาดเกี่ยวกับหน่วยความจำ อาจเกี่ยวข้องกับหน่วยความจำที่เสียหายภายในแอป ซึ่งเป็นสาเหตุหลักของช่องโหว่ด้านความปลอดภัยของแอป

  • คุณดูข้อมูลนี้ได้ใน "สแต็กเทรซหน่วยความจำ" ใหม่ เมื่อคุณคลิก รายละเอียดของปัญหาใน แดชบอร์ดของ Crashlytics

  • คุณยังใช้ "รายงาน GWP-ASan" ใหม่ได้ด้วย สัญญาณและตัวกรองเพื่อดูอย่างรวดเร็ว ปัญหาทั้งหมดเกี่ยวกับข้อมูลนี้

คุณสามารถดูรายงานหน่วยความจำของ GWP-ASan ได้หากแอปของคุณ ใช้ Crashlytics SDK เวอร์ชันล่าสุดสำหรับ Unity (v10.7.0 ขึ้นไป) และมี เปิดใช้ GWP-ASan อย่างชัดแจ้ง (กำหนดให้คุณต้อง แก้ไขไฟล์ Manifest ของแอป Android) หากมีโค้ด C++ ในแอป คุณสามารถทดสอบการตั้งค่า GWP-ASan ได้โดยใช้ ตัวอย่างโค้ดแบบเนทีฟในเอกสารประกอบของ Android

เพิ่มคีย์ที่กำหนดเอง

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

  • ในแดชบอร์ดของ Crashlytics คุณค้นหาปัญหาได้ ที่ตรงกับคีย์ที่กำหนดเอง
  • ขณะตรวจสอบปัญหาในคอนโซล คุณสามารถดู คีย์ที่กำหนดเองที่เกี่ยวข้องสำหรับแต่ละเหตุการณ์ (แท็บย่อยคีย์) และแม้แต่กรอง เหตุการณ์ตามคีย์ที่กำหนดเอง (เมนูตัวกรองที่ด้านบนของหน้า)

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

Crashlytics.SetCustomKey(string key, string value);

เพิ่มข้อความบันทึกที่กำหนดเอง

ข้อความที่บันทึกจะเชื่อมโยงกับข้อมูลข้อขัดข้องและจะปรากฏใน แดชบอร์ด Firebase Crashlytics เมื่อดูข้อขัดข้องที่เจาะจง

Crashlytics.Log(string message);

กำหนดตัวระบุผู้ใช้

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

Crashlytics.SetUserId(string identifier);

รับบันทึกเบรดครัมบ์

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

บันทึกเบรดครัมบ์ขับเคลื่อนโดย Google Analytics ดังนั้นในการรับบันทึกเบรดครัมบ์ จำเป็นต้อง เปิดใช้ Google Analytics สำหรับโปรเจ็กต์ Firebase และ เพิ่ม Firebase SDK สำหรับ Google Analytics กับแอปของคุณ เมื่อมีคุณสมบัติตามข้อกำหนดเหล่านี้ บันทึกเบรดครัมบ์จะ รวมกับข้อมูลของเหตุการณ์ภายในแท็บบันทึกเมื่อคุณดูรายละเอียด ของปัญหา

Analytics SDK บันทึกเหตุการณ์ screen_view โดยอัตโนมัติ ซึ่งจะทำให้บันทึกเบรดครัมบ์แสดงรายการหน้าจอที่มีการดูก่อน เหตุการณ์ข้อขัดข้อง ไม่ร้ายแรง หรือ ANR บันทึกเบรดครัมบ์ screen_view ประกอบด้วย พารามิเตอร์ firebase_screen_class

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

โปรดทราบว่าคุณสามารถ ควบคุมการเก็บรวบรวมและใช้ข้อมูล Google Analytics ซึ่งมีข้อมูลที่สร้างบันทึกเบรดครัมบ์

เปิดใช้การรายงานการเลือกใช้

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

วิธีปิดใช้การรวบรวมอัตโนมัติและเริ่มต้น Crashlytics เฉพาะที่เลือก ให้เรียกใช้การลบล้างการรวบรวมข้อมูล Crashlytics ที่รันไทม์ ค่าลบล้างจะยังคงอยู่ในการเปิดตัวแอปทุกครั้งเพื่อให้ Crashlytics ทำได้ รวบรวมรายงานโดยอัตโนมัติ หากต้องการเลือกไม่ใช้การรายงานข้อขัดข้องอัตโนมัติ ให้ข้าม false เป็นค่าการลบล้าง เมื่อตั้งค่าเป็น false ค่าใหม่จะไม่ จะมีผลจนกว่าจะเรียกใช้แอปครั้งถัดไป

Crashlytics.IsCrashlyticsCollectionEnabled = true

จัดการข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้อง

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

Crash Insights ใช้ข้อมูลข้อขัดข้องที่รวบรวมไว้เพื่อระบุแนวโน้มความเสถียรที่พบบ่อย หากไม่ต้องการแชร์ข้อมูลของแอป คุณสามารถเลือกไม่ใช้ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องได้ จากเมนูข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องที่ด้านบนของรายการปัญหาของ Crashlytics ในคอนโซล Firebase