| เลือกแพลตฟอร์ม: | iOS+ Android Flutter Unity |
คุณสามารถคลิกเข้าไปดูปัญหาและรับรายงานเหตุการณ์โดยละเอียดในแดชบอร์ด DevOps & Engagement > Crashlytics ของ Firebase คอนโซล และปรับแต่งรายงานเหล่านั้นเพื่อช่วยให้คุณเข้าใจได้ดียิ่งขึ้นว่าเกิดอะไรขึ้นในแอปและสถานการณ์รอบๆ เหตุการณ์ที่รายงานไปยัง 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 ข้อผิดพลาดที่เกี่ยวข้องกับหน่วยความจำเหล่านี้อาจเชื่อมโยงกับการเสียหายของหน่วยความจำภายในแอป ซึ่งเป็นสาเหตุหลักของช่องโหว่ด้านความปลอดภัยของแอป
ในแดชบอร์ด DevOps & Engagement > Crashlytics ของคอนโซล Firebase คุณ สามารถทำสิ่งต่อไปนี้กับข้อมูลนี้ได้
คุณสามารถดูข้อมูลนี้ในแท็บ "สแต็กเทรซของหน่วยความจำ" ใหม่เมื่อคลิกเข้าไปดูรายละเอียดของปัญหา
คุณสามารถใช้สัญญาณและตัวกรอง "รายงาน GWP-ASan" ใหม่เพื่อดูปัญหาทั้งหมดที่มีข้อมูลนี้ได้อย่างรวดเร็ว
คุณจะได้รับรายงานหน่วยความจำ GWP-ASan หากแอป ใช้ Crashlytics SDK ล่าสุดสำหรับ Unity (v10.7.0 ขึ้นไป) และเปิดใช้ GWP-ASan อย่างชัดแจ้ง (กำหนดให้คุณต้อง แก้ไขไฟล์ Manifest ของแอป Android) หากมีโค้ด C++ ในแอป คุณสามารถทดสอบการตั้งค่า GWP-ASan ได้โดยใช้ โค้ดแบบเนทีฟตัวอย่างในเอกสารประกอบของ Android
เพิ่มคีย์ที่กำหนดเอง
คีย์ที่กำหนดเองจะช่วยให้คุณทราบสถานะที่เฉพาะเจาะจงของแอปที่นำไปสู่ข้อขัดข้อง คุณสามารถเชื่อมโยงคู่คีย์-ค่าที่กำหนดเองกับรายงานข้อขัดข้อง จากนั้นใช้ คีย์ที่กำหนดเองเพื่อค้นหาและกรองรายงานข้อขัดข้องใน DevOps & Engagement > Crashlytics แดชบอร์ดของ Firebase คอนโซล
คุณสามารถค้นหาปัญหาที่ตรงกับคีย์ที่กำหนดเองได้
เมื่อตรวจสอบปัญหาที่เฉพาะเจาะจงในคอนโซล คุณจะดูคีย์ที่กำหนดเองที่เชื่อมโยงสำหรับแต่ละเหตุการณ์ (แท็บย่อยคีย์) และกรองเหตุการณ์ตามคีย์ที่กำหนดเองได้ด้วย (เมนูตัวกรอง ที่ด้านบนของหน้า)
เมื่อเรียกใช้หลายครั้ง ค่าใหม่สำหรับคีย์ที่มีอยู่จะอัปเดตค่า และระบบจะบันทึกเฉพาะค่าล่าสุดเมื่อบันทึกข้อขัดข้อง
Crashlytics.SetCustomKey(string key, string value);
เพิ่มข้อความบันทึกที่กำหนดเอง
หากต้องการให้ข้อมูลเพิ่มเติมเกี่ยวกับเหตุการณ์ที่นำไปสู่ข้อขัดข้อง คุณสามารถเพิ่ม บันทึกCrashlyticsที่กำหนดเองลงในแอปได้ Crashlyticsจะเชื่อมโยงบันทึก กับข้อมูลข้อขัดข้องและแสดงบันทึกในแท็บบันทึกเมื่อคุณดู รายละเอียดของปัญหา (ดูปัญหาทั้งหมดในแดชบอร์ดDevOps & Engagement > CrashlyticsของคอนโซลFirebase)
CrashlyticsCrashlytics.Log(string message);
ตั้งค่าตัวระบุผู้ใช้
คุณสามารถใช้หมายเลขรหัส โทเค็น หรือค่าที่แฮชเพื่อระบุผู้ใช้ปลายทางของแอปพลิเคชันอย่างไม่ซ้ำกันโดยไม่เปิดเผยหรือส่งข้อมูลส่วนบุคคลของผู้ใช้ นอกจากนี้ คุณยังล้างค่าได้โดยตั้งค่าเป็นสตริงว่าง ระบบจะแสดงค่านี้เมื่อดูข้อขัดข้องที่เฉพาะเจาะจงในแดชบอร์ด DevOps & Engagement > Crashlyticsของ Firebaseคอนโซล
Crashlytics.SetUserId(string identifier);
รับบันทึกเบรดครัมบ์
บันทึกเบรดครัมบ์จะช่วยให้คุณเข้าใจได้ดียิ่งขึ้นเกี่ยวกับการโต้ตอบที่ผู้ใช้มีกับแอปที่นำไปสู่ข้อขัดข้อง เหตุการณ์ที่ไม่ร้ายแรง หรือเหตุการณ์ ANR บันทึกเหล่านี้อาจเป็นประโยชน์เมื่อพยายามจำลองและแก้ไขข้อบกพร่องของปัญหา
บันทึกเบรดครัมบ์ทำงานโดย Google Analytics ดังนั้นหากต้องการรับบันทึกเบรดครัมบ์ คุณ ต้อง เปิดใช้ Google Analytics สำหรับโปรเจ็กต์ Firebase และ เพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอป เมื่อเป็นไปตามข้อกำหนดเหล่านี้แล้ว ระบบจะรวมบันทึกเบรดครัมบ์ไว้กับข้อมูลของเหตุการณ์โดยอัตโนมัติ ในแท็บ บันทึก เมื่อคุณดูรายละเอียด ของปัญหา (ดูปัญหาทั้งหมดในแดชบอร์ด DevOps & Engagement > Crashlytics แดชบอร์ดของ Firebase คอนโซล)
Analytics SDK
จะบันทึกเหตุการณ์ screen_view โดยอัตโนมัติ
ซึ่งจะช่วยให้บันทึกเบรดครัมบ์แสดงรายการหน้าจอที่ดูได้ก่อนเกิด
ข้อขัดข้อง เหตุการณ์ที่ไม่ร้ายแรง หรือเหตุการณ์ ANR บันทึกเบรดครัมบ์ screen_view มีพารามิเตอร์ firebase_screen_class
นอกจากนี้ ระบบยังป้อนข้อมูลเหตุการณ์ที่กำหนดเองที่คุณบันทึกด้วยตนเองภายในเซสชันของผู้ใช้ลงในบันทึกเบรดครัมบ์ด้วย ซึ่งรวมถึงข้อมูลพารามิเตอร์ของเหตุการณ์ ข้อมูลนี้จะช่วยแสดงชุดการกระทำของผู้ใช้ที่นำไปสู่ข้อขัดข้อง เหตุการณ์ที่ไม่ร้ายแรง หรือเหตุการณ์ ANR
โปรดทราบว่าคุณสามารถ ควบคุมการเก็บรวบรวมและการใช้ข้อมูลGoogle Analyticsได้, ซึ่งรวมถึงข้อมูลที่ป้อนลงในบันทึกเบรดครัมบ์
เปิดใช้การรายงานแบบเลือกใช้
โดยค่าเริ่มต้น Crashlytics จะรวบรวมรายงานข้อขัดข้องสำหรับผู้ใช้ แอปทั้งหมดโดยอัตโนมัติ คุณสามารถให้ผู้ใช้ควบคุมข้อมูลที่ส่งได้มากขึ้นโดยอนุญาตให้ผู้ใช้เลือกใช้การรายงานข้อขัดข้อง
หากต้องการปิดใช้การเก็บรวบรวมอัตโนมัติสำหรับผู้ใช้ที่เลือกเท่านั้น ให้เรียกใช้การลบล้างการเก็บรวบรวมข้อมูล Crashlytics ในรันไทม์ ค่าการลบล้างจะยังคงอยู่ ในการเปิดใช้แอปครั้งต่อๆ ไปทั้งหมด เพื่อให้ Crashlytics รวบรวมรายงานสำหรับผู้ใช้รายนั้นได้โดยอัตโนมัติ
Crashlytics.IsCrashlyticsCollectionEnabled = true
หากผู้ใช้เลือกไม่ใช้การเก็บรวบรวมข้อมูลในภายหลัง คุณสามารถส่ง false เป็นค่าการลบล้างได้ ซึ่งจะมีผลในครั้งถัดไปที่ผู้ใช้เปิดแอป และจะยังคงอยู่ในการเปิดใช้แอปครั้งต่อๆ ไปทั้งหมดสำหรับผู้ใช้รายนั้น
จัดการข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้อง
ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องจะช่วยคุณแก้ไขปัญหาโดยการเปรียบเทียบสแต็กเทรซที่ลบข้อมูลระบุตัวบุคคลแล้วกับเทรซจากแอป Firebase อื่นๆ และแจ้งให้คุณทราบว่าปัญหาของคุณเป็นส่วนหนึ่งของเทรนด์ที่ใหญ่ขึ้นหรือไม่ สำหรับปัญหาหลายๆ อย่าง ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องยังมีแหล่งข้อมูลที่จะช่วยคุณแก้ไขข้อบกพร่องของข้อขัดข้องด้วย
ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องใช้ข้อมูลข้อขัดข้องที่รวบรวมเพื่อระบุเทรนด์ความเสถียรทั่วไป หากไม่ต้องการแชร์ข้อมูลของแอป คุณสามารถเลือกไม่ใช้ข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้องได้จากเมนูข้อมูลเชิงลึกเกี่ยวกับข้อขัดข้อง ที่ด้านบนของรายการปัญหาในแดชบอร์ดDevOps & Engagement > Crashlytics ของFirebase คอนโซล
ขั้นตอนถัดไป
- ส่งออกข้อมูลไปยัง BigQuery หรือ Cloud Logging เพื่อการวิเคราะห์ขั้นสูงและฟีเจอร์ต่างๆ เช่น การค้นหาข้อมูล การสร้างแดชบอร์ดที่กำหนดเอง และการตั้งค่าการแจ้งเตือนที่กำหนดเอง