ในแดชบอร์ด Crashlytics ให้คลิกปัญหาและรับรายงานเหตุการณ์โดยละเอียด คุณปรับแต่งรายงานเหล่านี้ได้เพื่อช่วยให้คุณเข้าใจสิ่งที่เกิดขึ้นในแอปและสถานการณ์เกี่ยวกับเหตุการณ์ที่รายงานไปยัง Crashlytics
รายงานข้อยกเว้นที่ตรวจจับได้และข้อยกเว้นที่ตรวจไม่พบไปยัง Crashlytics
ใส่รายงาน GWP-ASan เพื่อแก้ปัญหาหน่วยความจำเสียหาย
ใช้เป็นเครื่องมือของแอปเพื่อบันทึกคีย์ที่กำหนดเอง ข้อความบันทึกที่กำหนดเอง และตัวระบุผู้ใช้
รับบันทึกเบรดครัมบ์โดยอัตโนมัติหากแอปใช้ 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
ระบบจะรายงานเหตุการณ์เหล่านี้ไปยัง 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 และเพิ่ม SDK ของ Firebase สำหรับ Google Analytics ลงในแอป เมื่อเป็นไปตามข้อกำหนดเหล่านี้แล้ว บันทึกเบรดครัมบ์จะรวมอยู่ในข้อมูลของเหตุการณ์ภายในแท็บบันทึกโดยอัตโนมัติเมื่อคุณดูรายละเอียดของปัญหา
Analytics SDK จะบันทึกเหตุการณ์ screen_view
โดยอัตโนมัติ ซึ่งช่วยให้บันทึกเบรดครัมบ์แสดงรายการหน้าจอที่ดูก่อนเหตุการณ์ข้อขัดข้อง ไม่ร้ายแรง หรือ ANR บันทึกเบรดครัมบ์ screen_view
มีพารามิเตอร์ firebase_screen_class
นอกจากนี้ บันทึกเบรดครัมบ์ยังจะมีเหตุการณ์ที่กำหนดเองที่คุณบันทึกด้วยตนเองภายในเซสชันของผู้ใช้ รวมถึงข้อมูลพารามิเตอร์ของเหตุการณ์ด้วย ข้อมูลนี้จะช่วยแสดงชุดการดำเนินการของผู้ใช้ซึ่งนำไปสู่เหตุการณ์ข้อขัดข้อง ไม่ร้ายแรง หรือ ANR
โปรดทราบว่าคุณควบคุมการรวบรวมและใช้ข้อมูล Google Analytics ได้ ซึ่งจะรวมข้อมูลที่สร้างบันทึกเบรดครัมบ์
เปิดใช้การรายงานการเลือกใช้
โดยค่าเริ่มต้น Crashlytics จะรวบรวมรายงานข้อขัดข้องสำหรับผู้ใช้แอปของคุณทั้งหมดโดยอัตโนมัติ คุณจะช่วยให้ผู้ใช้ควบคุมข้อมูลที่ตนส่งได้มากขึ้นโดยให้เลือกใช้การรายงานข้อขัดข้อง
หากต้องการปิดใช้การรวบรวมอัตโนมัติและเริ่มต้น Crashlytics เฉพาะสำหรับผู้ใช้ที่เลือก ให้เรียกใช้การลบล้างการเก็บรวบรวมข้อมูล Crashlytics ขณะรันไทม์ ค่าการลบล้างจะยังคงอยู่ตลอดการเปิดตัวแอปเพื่อให้ Crashlytics รวบรวมรายงานได้โดยอัตโนมัติ หากต้องการเลือกไม่ใช้รายงานข้อขัดข้องอัตโนมัติ ให้ส่ง false
เป็นค่าการลบล้าง เมื่อตั้งค่าเป็น false
ค่าใหม่จะไม่มีผลจนกว่าจะมีการเรียกใช้แอปครั้งถัดไป
Crashlytics.IsCrashlyticsCollectionEnabled = true
จัดการข้อมูลข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้อง
Crash Insights ช่วยคุณแก้ไขปัญหาโดยการเปรียบเทียบการติดตามสแต็กที่ไม่ระบุตัวตนกับการติดตามจากแอป Firebase อื่นๆ และแจ้งให้คุณทราบหากปัญหาของคุณเป็นส่วนหนึ่งของเทรนด์ที่ใหญ่กว่า Crash Insights ยังมีแหล่งข้อมูลมากมาย เพื่อช่วยคุณแก้ไขข้อบกพร่องของข้อขัดข้อง
ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องใช้ข้อมูลข้อขัดข้องโดยรวมเพื่อระบุแนวโน้มความเสถียรทั่วไป หากไม่ต้องการแชร์ข้อมูลของแอป คุณเลือกไม่ใช้ Crash Insights ได้จากเมนู Crash Insights ที่ด้านบนของรายการปัญหา Crashlytics ในคอนโซล Firebase