คู่มือนี้จะอธิบายวิธีปรับแต่งรายงานข้อขัดข้องโดยใช้ Firebase Crashlytics SDK ตามค่าเริ่มต้น Crashlytics จะรวบรวมรายงานข้อขัดข้องสำหรับผู้ใช้แอปของคุณทั้งหมดโดยอัตโนมัติ (คุณสามารถปิดการรายงานข้อขัดข้องอัตโนมัติและ เปิดใช้งานการรายงานการเลือกรับ สำหรับผู้ใช้ของคุณแทน) Crashlytics มีกลไกการบันทึกสี่แบบให้เลือก ได้แก่ คีย์ที่กำหนดเอง บันทึกที่กำหนดเอง ตัวระบุผู้ใช้ และ ข้อยกเว้นที่ตรวจพบ
เพิ่มคีย์ที่กำหนดเอง
คีย์ที่กำหนดเองช่วยให้คุณทราบสถานะเฉพาะของแอปที่นำไปสู่ข้อขัดข้อง คุณสามารถเชื่อมโยงคู่คีย์/ค่าที่กำหนดเองกับรายงานข้อขัดข้องของคุณได้ จากนั้นใช้คีย์ที่กำหนดเองเพื่อค้นหาและกรองรายงานข้อขัดข้องในคอนโซล Firebase
- ใน แดชบอร์ด Crashlytics คุณสามารถค้นหาปัญหาที่ตรงกับคีย์ที่กำหนดเองได้
- เมื่อคุณตรวจสอบปัญหาเฉพาะเจาะจงในคอนโซล คุณสามารถดูคีย์ที่กำหนดเองที่เกี่ยวข้องสำหรับแต่ละเหตุการณ์ ( แท็บย่อย ของคีย์ ) และยังกรองเหตุการณ์ตามคีย์ที่กำหนดเองได้ ( เมนู ตัวกรอง ที่ด้านบนของหน้า)
ใช้เมธอด setCustomValue
เพื่อตั้งค่าคู่คีย์/ค่า ตัวอย่างเช่น:
สวิฟท์
// Set int_key to 100. Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set str_key to "hello". Crashlytics.crashlytics().setCustomValue("hello", forKey: "str_key")
วัตถุประสงค์-C
เมื่อตั้งค่าจำนวนเต็ม บูลีน หรือทศนิยม ให้ใส่ค่าเป็น @( value )
// Set int_key to 100. [[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"]; // Set str_key to "hello". [[FIRCrashlytics crashlytics] setCustomValue:@"hello" forKey:@"str_key"];
คุณยังสามารถแก้ไขค่าของคีย์ที่มีอยู่ได้โดยการเรียกคีย์แล้วตั้งค่าเป็นค่าอื่น ตัวอย่างเช่น:
สวิฟท์
Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set int_key to 50 from 100. Crashlytics.crashlytics().setCustomValue(50, forKey: "int_key")
วัตถุประสงค์-C
[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"]; // Set int_key to 50 from 100. [[FIRCrashlytics crashlytics] setCustomValue:@(50) forKey:@"int_key"];
เพิ่มคู่คีย์/ค่าจำนวนมากโดยใช้เมธอด setCustomKeysAndValues
โดยมี NSDictionary เป็นพารามิเตอร์เดียว:
สวิฟท์
let keysAndValues = [ "string key" : "string value", "string key 2" : "string value 2", "boolean key" : true, "boolean key 2" : false, "float key" : 1.01, "float key 2" : 2.02 ] as [String : Any] Crashlytics.crashlytics().setCustomKeysAndValues(keysAndValues)
วัตถุประสงค์-C
NSDictionary *keysAndValues = @{@"string key" : @"string value", @"string key 2" : @"string value 2", @"boolean key" : @(YES), @"boolean key 2" : @(NO), @"float key" : @(1.01), @"float key 2" : @(2.02)}; [[FIRCrashlytics crashlytics] setCustomKeysAndValues: keysAndValues];
เพิ่มข้อความบันทึกที่กำหนดเอง
คุณเพิ่มบันทึก Crashlytics ที่กำหนดเองลงในแอปได้เพื่อเพิ่มบริบทเกี่ยวกับเหตุการณ์ที่นำไปสู่ข้อขัดข้อง Crashlytics เชื่อมโยงบันทึกกับข้อมูลข้อขัดข้องของคุณและแสดงไว้ในหน้า Crashlytics ของ คอนโซล Firebase ใต้แท็บ บันทึก
สวิฟท์
ใช้ log()
หรือ log(format:, arguments:)
เพื่อช่วยระบุปัญหา หากคุณต้องการได้รับเอาต์พุตบันทึกที่มีประโยชน์พร้อมข้อความ ออบเจ็กต์ที่คุณส่งไปยัง log()
จะต้องเป็นไปตามคุณสมบัติ CustomStringConvertible
log()
ส่งคืนคุณสมบัติคำอธิบายที่คุณกำหนดสำหรับวัตถุ ตัวอย่างเช่น:
Crashlytics.crashlytics().log("Higgs-Boson detected! Bailing out…, \(attributesDict)")
.log(format:, arguments:)
จัดรูปแบบค่าที่ส่งคืนจากการเรียก getVaList()
ตัวอย่างเช่น:
Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList(["Higgs-Boson detected! Bailing out…", attributesDict]))
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้ log()
หรือ log(format:, arguments:)
โปรดดู เอกสารอ้างอิง Crashlytics
วัตถุประสงค์-C
ใช้ log
หรือ logWithFormat
เพื่อช่วยระบุปัญหา โปรดทราบว่าหากคุณต้องการรับเอาต์พุตบันทึกที่มีประโยชน์พร้อมข้อความ ออบเจ็กต์ที่คุณส่งไปยังวิธีใดวิธีหนึ่งจะต้องแทนที่คุณสมบัติอินสแตนซ์ description
ตัวอย่างเช่น:
[[FIRCrashlytics crashlytics] log:@"Simple string message"]; [[FIRCrashlytics crashlytics] logWithFormat:@"Higgs-Boson detected! Bailing out... %@", attributesDict]; [[FIRCrashlytics crashlytics] logWithFormat:@"Logging a variable argument list %@" arguments:va_list_arg];
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้ log
และ logWithFormat
โปรดดู เอกสารอ้างอิง Crashlytics
ตั้งค่าตัวระบุผู้ใช้
ในการวินิจฉัยปัญหา การทราบว่าผู้ใช้รายใดของคุณประสบปัญหาดังกล่าวมักจะเป็นประโยชน์ Crashlytics มีวิธีระบุผู้ใช้โดยไม่ระบุตัวตนในรายงานข้อขัดข้องของคุณ
หากต้องการเพิ่ม ID ผู้ใช้ลงในรายงานของคุณ ให้กำหนดตัวระบุที่ไม่ซ้ำกันให้กับผู้ใช้แต่ละรายในรูปแบบของหมายเลข ID โทเค็น หรือค่าแฮช:
สวิฟท์
Crashlytics.crashlytics().setUserID("123456789")
วัตถุประสงค์-C
[[FIRCrashlytics crashlytics] setUserID:@"123456789"];
หากคุณจำเป็นต้องล้างตัวระบุผู้ใช้หลังจากตั้งค่าแล้ว ให้รีเซ็ตค่าเป็นสตริงว่าง การล้างตัวระบุผู้ใช้จะไม่ลบบันทึก Crashlytics ที่มีอยู่ หากคุณต้องการลบบันทึกที่เกี่ยวข้องกับ ID ผู้ใช้ โปรด ติดต่อฝ่ายสนับสนุนของ Firebase
เปิดใช้งานการรายงานการเลือกรับ
ตามค่าเริ่มต้น Crashlytics จะรวบรวมรายงานข้อขัดข้องสำหรับผู้ใช้แอปทั้งหมดของคุณโดยอัตโนมัติ เพื่อให้ผู้ใช้ควบคุมข้อมูลที่ส่งได้มากขึ้น คุณสามารถเปิดใช้การรายงานแบบเลือกรับได้โดยปิดใช้การรายงานอัตโนมัติ และส่งข้อมูลไปยัง Crashlytics เมื่อคุณเลือกในโค้ดของคุณเท่านั้น:
ปิดการรวบรวมอัตโนมัติโดยเพิ่มคีย์ใหม่ลงในไฟล์
Info.plist
ของคุณ:- คีย์:
FirebaseCrashlyticsCollectionEnabled
- ค่า:
false
- คีย์:
เปิดใช้การรวบรวมสำหรับผู้ใช้ที่เลือกโดยเรียกใช้การลบล้างการรวบรวมข้อมูล Crashlytics ณ รันไทม์ ค่าแทนที่จะยังคงอยู่ตลอดการเปิดตัวแอปของคุณ ดังนั้น Crashlytics จึงรวบรวมรายงานได้โดยอัตโนมัติ
หากต้องการเลือกไม่ใช้การรายงานข้อขัดข้องอัตโนมัติ ให้ส่ง
false
เป็นค่าแทนที่ เมื่อตั้งค่าเป็นfalse
ค่าใหม่จะไม่มีผลจนกว่าจะมีการเรียกใช้แอปครั้งถัดไปสวิฟท์
Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)
วัตถุประสงค์-C
[[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];
จัดการข้อมูล Crash Insights
Crash Insights ช่วยคุณแก้ไขปัญหาโดยการเปรียบเทียบสแต็กเทรซที่ไม่ระบุตัวตนกับการติดตามจากแอป Firebase อื่นๆ และแจ้งให้คุณทราบว่าปัญหาของคุณเป็นส่วนหนึ่งของเทรนด์ที่ใหญ่กว่าหรือไม่ สำหรับปัญหาต่างๆ มากมาย Crash Insights ยังมีทรัพยากรเพื่อช่วยคุณแก้ไขจุดบกพร่องอีกด้วย
Crash Insights ใช้ข้อมูลข้อขัดข้องที่รวบรวมไว้เพื่อระบุแนวโน้มความเสถียรทั่วไป หากคุณไม่ต้องการแชร์ข้อมูลแอป คุณสามารถเลือกไม่รับ Crash Insights ได้จากเมนู Crash Insights ที่ด้านบนของรายการปัญหา Crashlytics ใน คอนโซล Firebase