คู่มือเริ่มต้นฉบับย่อนี้อธิบายวิธีตั้งค่า Firebase Crashlytics ในแอปของคุณ ที่มี Firebase Crashlytics SDK เพื่อให้ได้รับข้อขัดข้องที่ครอบคลุม ในคอนโซล Firebase
การตั้งค่า Crashlytics ต้องมีงานทั้งในคอนโซล Firebase และ IDE (เช่น การเพิ่มไฟล์การกำหนดค่า Firebase และ Crashlytics SDK) ในการตั้งค่าให้เสร็จสิ้น คุณจะต้องบังคับให้มีข้อขัดข้องจากการทดสอบเพื่อส่ง ไปยัง Firebase
ก่อนเริ่มต้น
เพิ่ม Firebase ลงใน Apple หากยังไม่ได้เพิ่ม หากไม่มีแอป Apple คุณดาวน์โหลดแอป ตัวอย่างแอป
แนะนำ: หากต้องการให้ระบบแสดง บันทึกเบรดครัมบ์ เพื่อทำความเข้าใจการดำเนินการของผู้ใช้ที่นำไปสู่เหตุการณ์ข้อขัดข้อง ไม่ร้ายแรง หรือ ANR คุณต้องเปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase
หากโปรเจ็กต์ Firebase ที่มีอยู่ไม่มี Google Analytics เปิดใช้อยู่ คุณสามารถเปิดใช้ Google Analytics ได้จาก แท็บการผสานรวมของ
ในคอนโซล การตั้งค่าโปรเจ็กต์Firebase หากคุณกำลังสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ในระหว่างขั้นตอนการสร้างโปรเจ็กต์
โปรดทราบว่าบันทึกเบรดครัมบ์มีให้ใช้งานในทุกแพลตฟอร์มของ Apple ที่ Crashlytics ยกเว้น watchOS
ขั้นตอนที่ 1: เพิ่ม SDK ของ Crashlytics ลงในแอป
ใช้ Swift Package Manager เพื่อติดตั้งและจัดการทรัพยากร Dependency ของ Firebase
- เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่ไฟล์ > เพิ่มแพ็กเกจ
- เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ SDK สำหรับแพลตฟอร์ม Firebase ของ Apple ดังนี้
- เลือกไลบรารี Crashlytics
- เพื่อใช้ประโยชน์จาก บันทึกเบรดครัมบ์ เพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอปด้วย โปรดตรวจสอบว่า เปิดใช้ Google Analytics แล้ว ในโปรเจ็กต์ Firebase
- เพิ่มแฟล็ก
-ObjC
ลงในส่วนแฟล็ก Linker อื่นๆ ของการตั้งค่าบิลด์ของเป้าหมาย - (macOS เท่านั้น) ใน
Info.plist
ให้เพิ่มคีย์NSApplicationCrashOnExceptions
และตั้งค่าเป็นYES
- เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ปัญหาและดาวน์โหลด ทรัพยากร Dependency ในเบื้องหลัง
https://github.com/firebase/firebase-ios-sdk.git
ถัดไป ให้กำหนดค่าโมดูล Firebase ดังนี้
นำเข้าโมดูล Firebase ในโครงสร้าง
App
หรือUIApplicationDelegate
ดังนี้Swift
import Firebase
Objective-C
@import Firebase;
กำหนดค่าอินสแตนซ์
FirebaseApp
ที่แชร์ ซึ่งโดยทั่วไปจะอยู่ในคอลัมน์ เมธอดapplication(_:didFinishLaunchingWithOptions:)
:Swift
// Use the Firebase library to configure APIs. FirebaseApp.configure()
Objective-C
// Use the Firebase library to configure APIs. [FIRApp configure];
ขั้นตอนที่ 2: ตั้งค่า Xcode ให้อัปโหลดไฟล์ dSYM โดยอัตโนมัติ
หากต้องการสร้างรายงานข้อขัดข้องที่มนุษย์อ่านได้ Crashlytics ต้องใช้ไฟล์ของโปรเจ็กต์ ไฟล์สัญลักษณ์แก้ไขข้อบกพร่อง (dSYM) ขั้นตอนต่อไปนี้อธิบายวิธีกำหนดค่า Xcode เพื่อสร้าง dSYM โดยอัตโนมัติ ประมวลผล และอัปโหลดไฟล์ได้ทุกเมื่อ ที่คุณสร้างแอปเอง
เปิดพื้นที่ทำงาน Xcode ของโปรเจ็กต์ แล้วเลือกไฟล์โปรเจ็กต์ใน ตัวนำทางด้านซ้าย
จากรายการเป้าหมาย ให้เลือกเป้าหมายบิลด์หลัก
คลิกแท็บการตั้งค่าบิลด์ จากนั้นทำตามขั้นตอนต่อไปนี้เพื่อให้ Xcode จะสร้าง dSYM สำหรับบิลด์ของคุณ
คลิกทั้งหมด แล้วค้นหา
debug information format
ตั้งค่ารูปแบบข้อมูลการแก้ไขข้อบกพร่องเป็น
DWARF with dSYM File
สําหรับ ประเภทบิลด์
คลิกแท็บสร้างระยะ จากนั้นทำตามขั้นตอนต่อไปนี้เพื่อให้ Xcode สามารถประมวลผล dSYM และอัปโหลดไฟล์
คลิก
> เรียกใช้ระยะสคริปต์แบบใหม่ตรวจสอบว่าระยะเรียกใช้สคริปต์ใหม่นี้เป็นบิลด์สุดท้ายของโปรเจ็กต์ ระยะ มิฉะนั้น Crashlytics จะไม่สามารถประมวลผล dSYM ได้อย่างถูกต้อง
ขยายส่วน Run Script ใหม่
ในช่องสคริปต์ (อยู่ใต้ป้ายกำกับ Shell) ให้เพิ่มแอตทริบิวต์ ตามสคริปต์เรียกใช้ต่อไปนี้
สคริปต์นี้จะประมวลผลไฟล์ dSYM ของโครงการและอัปโหลดไฟล์ไปยัง Crashlytics
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
ในส่วนไฟล์อินพุต ให้เพิ่มเส้นทางสำหรับตำแหน่งของ ไฟล์ต่อไปนี้:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
สำหรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับไฟล์ dSYM และ Crashlytics (รวมถึง วิธีอัปโหลดไฟล์ dSYM ด้วยตนเอง) โปรดไปที่ รับรายงานข้อขัดข้องที่ถอดรหัสซอร์สโค้ดที่สร้างความสับสน
ขั้นตอนที่ 3: บังคับให้ทดสอบการขัดข้องเพื่อตั้งค่าให้เสร็จสิ้น
หากต้องการตั้งค่า Crashlytics ให้เสร็จและดูข้อมูลเบื้องต้นใน แดชบอร์ด Crashlytics ของคอนโซล Firebase คุณต้องบังคับใช้การทดสอบ ขัดข้อง
เพิ่มโค้ดลงในแอปของคุณที่ใช้บังคับให้การทดสอบขัดข้องได้
คุณสามารถใช้โค้ดต่อไปนี้เพื่อเพิ่มปุ่มลงในแอป ซึ่ง หากกด จะเป็นการเกิดข้อขัดข้อง โดยปุ่มจะมีป้ายกำกับว่า "ทดสอบข้อขัดข้อง"
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
ชุดเครื่องมือ UI
Swift
import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let button = UIButton(type: .roundedRect) button.frame = CGRect(x: 20, y: 50, width: 100, height: 30) button.setTitle("Test Crash", for: []) button.addTarget(self, action: #selector(self.crashButtonTapped(_:)), for: .touchUpInside) view.addSubview(button) } @IBAction func crashButtonTapped(_ sender: AnyObject) { let numbers = [0] let _ = numbers[1] } }
Objective-C
#import "ViewController.h" @implementation ViewController ‐ (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(20, 50, 100, 30); [button setTitle:@"Test Crash" forState:UIControlStateNormal]; [button addTarget:self action:@selector(crashButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } ‐ (IBAction)crashButtonTapped:(id)sender { @[][1]; } @end
สร้างและเรียกใช้แอปใน Xcode โดยยกเลิกการเชื่อมต่อโปรแกรมแก้ไขข้อบกพร่อง Xcode
คลิก
สร้าง จากนั้น เรียกใช้สคีมปัจจุบันเพื่อสร้างแอปในอุปกรณ์ทดสอบ หรือ เครื่องมือจำลองรอจนกว่าแอปจะทำงาน แล้วคลิก Crashlytics
หยุดเรียกใช้รูปแบบหรือ การดำเนินการเพื่อปิดอินสแตนซ์เริ่มต้นของแอป ชื่อย่อนี้ มีโปรแกรมแก้ไขข้อบกพร่องที่รบกวน
บังคับใช้ข้อขัดข้องจากการทดสอบเพื่อส่งรายงานข้อขัดข้องครั้งแรกของแอป
เปิดแอปจากหน้าจอหลักของอุปกรณ์ทดสอบหรือเครื่องจำลอง
ในแอป ให้กด "ทดสอบข้อขัดข้อง" ที่คุณเพิ่มโดยใช้โค้ด ที่ด้านบน
หลังจากที่แอปขัดข้อง ให้เรียกใช้อีกครั้งจาก Xcode เพื่อให้แอปสามารถ ส่งรายงานข้อขัดข้องไปยัง Firebase
ไปที่หน้าแดชบอร์ด Crashlytics ของ Firebase เพื่อดูข้อขัดข้องในการทดสอบ
หากรีเฟรชคอนโซลแล้ว แต่ยังไม่เห็นข้อขัดข้องจากการทดสอบ หลังจากผ่านไป 5 นาที เปิดใช้การบันทึกการแก้ไขข้อบกพร่อง เพื่อดูว่าแอปของคุณส่งรายงานข้อขัดข้องหรือไม่
เท่านี้ก็เรียบร้อย Crashlytics กำลังตรวจสอบแอปของคุณเพื่อหาข้อขัดข้องอยู่ในขณะนี้ ไปที่หน้าแดชบอร์ด Crashlytics เพื่อดูและตรวจสอบ รายงานและสถิติทั้งหมดของคุณ
ขั้นตอนถัดไป
- ปรับแต่งการตั้งค่ารายงานข้อขัดข้อง ด้วยการเพิ่มการรายงานการเลือกรับ บันทึก คีย์ และการติดตามข้อผิดพลาดที่ไม่ร้ายแรง