ในCrashlyticsแดชบอร์ด คุณสามารถคลิกปัญหาเพื่อดูรายงานเหตุการณ์โดยละเอียด ได้ คุณปรับแต่งรายงานเหล่านั้นเพื่อช่วยให้เข้าใจได้ดีขึ้นว่า เกิดอะไรขึ้นในแอปและสถานการณ์รอบๆ เหตุการณ์ที่รายงานไปยัง Crashlytics
รายงานข้อยกเว้นที่ตรวจพบและข้อยกเว้นที่ตรวจไม่พบไปยัง Crashlytics
รวมรายงาน GWP-ASan เพื่อแก้ไขข้อบกพร่องเกี่ยวกับปัญหาการเสียหายของหน่วยความจำ
ตั้งค่าแอปเพื่อบันทึกคีย์ที่กำหนดเอง ข้อความบันทึกที่กำหนดเอง และตัวระบุผู้ใช้
รับบันทึกเส้นทางโดยอัตโนมัติหากแอปใช้ Firebase SDK สำหรับ Google Analytics บันทึกเหล่านี้ช่วยให้คุณเห็นการกระทําของผู้ใช้ที่นําไปสู่เหตุการณ์ที่รวบรวมโดย Crashlytics ในแอป
ปิดการรายงานข้อขัดข้องอัตโนมัติและเปิดใช้การรายงานแบบเลือกเข้าร่วมสำหรับผู้ใช้ โปรดทราบว่าโดยค่าเริ่มต้น Crashlytics จะรวบรวมรายงานข้อขัดข้องสำหรับผู้ใช้แอปทั้งหมดโดยอัตโนมัติ
รายงานข้อยกเว้น
รายงานข้อยกเว้นที่พบ
หากมีข้อยกเว้นที่คาดไว้ คุณสามารถให้ Crashlytics SDK รายงานเป็นเหตุการณ์ที่ไม่ร้ายแรง ระบบจะบันทึกเหตุการณ์เหล่านี้ในอุปกรณ์ แล้วส่งพร้อมกับรายงานเหตุการณ์ร้ายแรงถัดไป หรือเมื่อผู้ใช้ปลายทางรีสตาร์ทเกม
คุณบันทึกข้อยกเว้นใน C# ได้โดยใช้วิธีต่อไปนี้
Crashlytics.LogException(Exception ex);
คุณสามารถบันทึกข้อยกเว้นที่คาดไว้ในบล็อก try/catch ของเกมได้โดยทำดังนี้
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 ข้อผิดพลาดที่เกี่ยวข้องกับหน่วยความจำเหล่านี้อาจเชื่อมโยงกับการเสียหายของหน่วยความจำภายในแอปของคุณ ซึ่งเป็นสาเหตุหลักของช่องโหว่ด้านความปลอดภัยของแอป
คุณดูข้อมูลนี้ได้ในแท็บใหม่ "Memory stack traces" เมื่อคลิกเข้าไปดูรายละเอียดของปัญหาในแดชบอร์ด Crashlytics
นอกจากนี้ คุณยังใช้สัญญาณและตัวกรอง "รายงาน GWP-ASan" ใหม่เพื่อดูปัญหาทั้งหมดที่มีข้อมูลนี้ได้อย่างรวดเร็วด้วย
คุณจะได้รับรายงานหน่วยความจำ GWP-ASan หากแอปใช้ CrashlyticsSDK สำหรับ 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);
รับบันทึกเบรดครัมบ์
บันทึก Breadcrumb ช่วยให้คุณเข้าใจการโต้ตอบที่ผู้ใช้ มีกับแอปของคุณก่อนที่จะเกิดข้อขัดข้อง ข้อผิดพลาดที่ไม่ร้ายแรง หรือเหตุการณ์ 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.IsCrashlyticsCollectionEnabled = true
หากผู้ใช้เลือกไม่ใช้การเก็บรวบรวมข้อมูลในภายหลัง คุณสามารถส่ง false
เป็นค่าลบล้าง ซึ่งจะมีผลในครั้งถัดไปที่ผู้ใช้เปิดแอป และจะยังคงอยู่ในการเปิดแอปครั้งต่อๆ ไปทั้งหมดสำหรับผู้ใช้รายนั้น
จัดการข้อมูลข้อมูลเชิงลึกเกี่ยวกับการขัดข้อง
ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องช่วยให้คุณแก้ปัญหาได้โดยการเปรียบเทียบสแต็กเทรซที่ลบข้อมูลระบุตัวบุคคลของคุณกับเทรซจากแอป Firebase อื่นๆ และแจ้งให้คุณทราบว่าปัญหาของคุณเป็นส่วนหนึ่งของแนวโน้มที่ใหญ่ขึ้นหรือไม่ สำหรับปัญหาหลายอย่าง ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องยังมีแหล่งข้อมูล ที่จะช่วยคุณแก้ไขข้อบกพร่องของข้อขัดข้องด้วย
ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องใช้ข้อมูลข้อขัดข้องที่รวบรวมมาเพื่อระบุแนวโน้มความเสถียรทั่วไป หากไม่ต้องการแชร์ข้อมูลของแอป คุณสามารถเลือกไม่ใช้ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องได้จากเมนูข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องที่ด้านบนของCrashlyticsรายการปัญหา ในFirebaseคอนโซล