การเริ่มต้นอย่างรวดเร็วนี้จะอธิบายวิธีตั้งค่า Firebase Crashlytics ในแอปของคุณด้วย Firebase Crashlytics SDK เพื่อให้คุณได้รับรายงานข้อขัดข้องที่ครอบคลุมในคอนโซล Firebase
การตั้งค่า Crashlytics ต้องการงานทั้งในคอนโซล Firebase และ IDE ของคุณ (เช่น การเพิ่มไฟล์การกำหนดค่า Firebase และ Crashlytics SDK) หากต้องการตั้งค่าให้เสร็จสิ้น คุณจะต้องบังคับให้ทดสอบข้อขัดข้องเพื่อส่งรายงานข้อขัดข้องฉบับแรกไปยัง Firebase
ก่อนที่คุณจะเริ่มต้น
หากคุณยังไม่ได้ ดำเนินการ ให้เพิ่ม Firebase ในโครงการ Apple ของคุณ หากคุณไม่มีแอป Apple คุณสามารถดาวน์โหลด แอปตัวอย่างได้
แนะนำ : หากต้องการรับคุณลักษณะต่างๆ เช่น ผู้ใช้ที่ปราศจากข้อขัดข้อง บันทึกการแสดงเส้นทาง และการแจ้งเตือนความเร็ว คุณต้องเปิดใช้ Google Analytics ในโครงการ Firebase
แพลตฟอร์ม Apple ทั้งหมดที่รองรับโดย Crashlytics (ยกเว้น watchOS) สามารถใช้ประโยชน์จากคุณสมบัติเหล่านี้จาก Google Analytics โปรดทราบว่าคุณต้องมี SDK v8.9.0+ สำหรับแอป macOS และ tvOS
หากโปรเจ็กต์ Firebase ที่มีอยู่ของคุณไม่ได้เปิดใช้งาน Google Analytics คุณสามารถเปิดใช้งาน Google Analytics จาก แท็บ การผสานรวม ของ > การตั้งค่าโปรเจ็กต์ ในคอนโซล Firebase
หากคุณกำลังสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ระหว่างเวิร์กโฟลว์การสร้างโปรเจ็กต์
ขั้นตอนที่ 1 : เพิ่ม Crashlytics SDK ลงในแอปของคุณ
ใช้ Swift Package Manager เพื่อติดตั้งและจัดการการอ้างอิง Firebase
- ใน Xcode เมื่อโปรเจ็กต์แอปของคุณเปิดอยู่ ให้ไปที่ File > Add Packages
- เมื่อได้รับแจ้ง ให้เพิ่มที่เก็บ Firebase Apple platforms SDK:
- เลือกไลบรารี Crashlytics
- เพื่อประสบการณ์ที่ดีที่สุดกับ Crashlytics เราขอแนะนำ ให้เปิดใช้ Google Analytics ในโครงการ Firebase และเพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอปของคุณ คุณสามารถเลือกห้องสมุดที่ไม่มีการรวบรวม IDFA หรือมีการรวบรวม IDFA
- เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดการอ้างอิงของคุณโดยอัตโนมัติในเบื้องหลัง
https://github.com/firebase/firebase-ios-sdk
ถัดไป กำหนดค่าโมดูล Firebase:
นำเข้าโมดูล Firebase ใน
App
struct หรือUIApplicationDelegate
:สวิฟต์
import Firebase
วัตถุประสงค์-C
@import Firebase;
กำหนดค่าอินสแตนซ์ที่ใช้ร่วมกัน
FirebaseApp
ซึ่งโดยปกติจะอยู่ในapplication(_:didFinishLaunchingWithOptions:)
:สวิฟต์
// Use the Firebase library to configure APIs. FirebaseApp.configure()
วัตถุประสงค์-C
// Use the Firebase library to configure APIs. [FIRApp configure];
ขั้นตอนที่ 2 : ตั้งค่า Xcode เพื่ออัปโหลดไฟล์ dSYM โดยอัตโนมัติ
หากต้องการสร้างรายงานข้อขัดข้องที่มนุษย์สามารถอ่านได้ Crashlytics ต้องการไฟล์สัญลักษณ์การแก้ไขข้อบกพร่อง (dSYM) ของโครงการ ขั้นตอนต่อไปนี้อธิบายวิธีกำหนดค่า Xcode เพื่อสร้าง dSYM ของคุณโดยอัตโนมัติ ประมวลผล และอัปโหลดไฟล์ทุกครั้งที่คุณสร้างแอป
เปิดพื้นที่ทำงาน Xcode ของโปรเจ็กต์ จากนั้นเลือกไฟล์โปรเจ็กต์ในแถบนำทางด้านซ้าย
จากรายการ TARGETS เลือกเป้าหมายการสร้างหลักของคุณ
คลิกแท็บ การตั้งค่าบิลด์ จากนั้นทำตามขั้นตอนต่อไปนี้เพื่อให้ Xcode สร้าง dSYM สำหรับบิลด์ของคุณ
คลิก ทั้งหมด จากนั้นค้นหา
debug information format
ตั้ง ค่ารูปแบบข้อมูลการแก้ไขจุดบกพร่อง เป็น
DWARF with dSYM File
สำหรับประเภทบิลด์ทั้งหมดของคุณ
คลิกแท็บ Build Phases จากนั้นทำตามขั้นตอนต่อไปนี้เพื่อให้ Xcode สามารถประมวลผล dSYM ของคุณและอัปโหลดไฟล์ได้
คลิก
> เฟสการรันสคริปต์ใหม่ตรวจสอบให้แน่ใจว่าขั้นตอน Run Script ใหม่นี้เป็นขั้นตอนการสร้างสุดท้ายของโครงการของคุณ มิฉะนั้น Crashlytics จะไม่สามารถประมวลผล dSYM ได้อย่างถูกต้อง
ขยายส่วน เรียกใช้สคริปต์ ใหม่
ในฟิลด์สคริปต์ (อยู่ใต้ป้ายกำกับ Shell ) ให้เพิ่มสคริปต์การเรียกใช้ต่อไปนี้
สคริปต์นี้จะประมวลผลไฟล์ dSYM ของโปรเจ็กต์และอัปโหลดไฟล์ไปยัง Crashlytics
"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
ในส่วน Input Files ให้เพิ่มพาธสำหรับตำแหน่งของไฟล์ต่อไปนี้:
ตำแหน่ง ไฟล์ dSYM ของโครงการของคุณ :
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
การระบุตำแหน่งไฟล์ dSYM ของโปรเจ็กต์ช่วยให้ Crashlytics ประมวลผล dSYM สำหรับแอปขนาดใหญ่ได้รวดเร็วยิ่งขึ้น
ตำแหน่งของ ไฟล์
Info.plist
ที่สร้างขึ้นในโครงการของคุณ :$(SRCROOT)/$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)
การระบุตำแหน่งของไฟล์
Info.plist
ที่สร้างขึ้นในโครงการของคุณทำให้ Crashlytics สามารถเชื่อมโยงเวอร์ชันของแอปกับ dSYM ได้
สำหรับข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับไฟล์ dSYM และ Crashlytics (รวมถึงวิธีการอัปโหลดไฟล์ dSYM ด้วยตนเอง) ให้ไป ที่ รับรายงานข้อขัดข้องที่ถอดรหัสซอร์สโค้ดที่สร้างความสับสน
ขั้นตอนที่ 3 : บังคับให้ทดสอบข้อขัดข้องเพื่อสิ้นสุดการตั้งค่า
หากต้องการตั้งค่า Crashlytics ให้เสร็จสิ้นและดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase คุณต้องบังคับการทดสอบการหยุดทำงาน
เพิ่มโค้ดในแอปของคุณเพื่อบังคับให้ทดสอบข้อขัดข้อง
คุณสามารถใช้โค้ดต่อไปนี้เพื่อเพิ่มปุ่มในแอพของคุณ ซึ่งเมื่อกดแล้วจะทำให้เกิดข้อขัดข้อง ปุ่มนี้มีชื่อว่า "Test Crash"
SwiftUI
Button("Crash") { fatalError("Crash was triggered") }
UIKit
สวิฟต์
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] } }
วัตถุประสงค์-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
คลิก
Build แล้วเรียกใช้โครงร่างปัจจุบัน เพื่อสร้างแอปของคุณบนอุปกรณ์ทดสอบหรือโปรแกรมจำลองรอจนกว่าแอปของคุณจะทำงาน จากนั้นคลิก
หยุดการทำงานแบบแผนหรือการดำเนินการ เพื่อปิดอินสแตนซ์เริ่มต้นของแอปของคุณ อินสแตนซ์เริ่มต้นนี้มีดีบักเกอร์ที่รบกวนการทำงานของ Crashlytics
บังคับให้ทดสอบข้อขัดข้องเพื่อส่งรายงานข้อขัดข้องแรกของแอปของคุณ:
เปิดแอปของคุณจากหน้าจอหลักของอุปกรณ์ทดสอบหรือโปรแกรมจำลอง
ในแอปของคุณ ให้กดปุ่ม "ทดสอบการขัดข้อง" ที่คุณเพิ่มโดยใช้โค้ดด้านบน
หลังจากที่แอปของคุณขัดข้อง ให้เรียกใช้อีกครั้งจาก Xcode เพื่อให้แอปของคุณสามารถส่งรายงานข้อขัดข้องไปยัง Firebase
ไปที่ แดชบอร์ด Crashlytics ของคอนโซล Firebase เพื่อดูข้อขัดข้องในการทดสอบของคุณ
หากคุณรีเฟรชคอนโซลแล้ว แต่ยังไม่เห็นการทดสอบขัดข้องหลังจากผ่านไปห้านาที ให้เปิดใช้การบันทึกการแก้ไขจุดบกพร่อง เพื่อดูว่าแอปของคุณส่งรายงานข้อขัดข้องหรือไม่
และนั่นแหล่ะ! Crashlytics กำลังตรวจสอบแอปของคุณเพื่อหาข้อขัดข้อง ไปที่ แดชบอร์ด Crashlytics เพื่อดูและตรวจสอบรายงานและสถิติทั้งหมดของคุณ
ขั้นตอนถัดไป
- ปรับแต่งการตั้งค่ารายงานข้อขัดข้องของคุณ โดยเพิ่มการรายงานแบบเลือกรับ บันทึก คีย์ และการติดตามข้อผิดพลาดที่ไม่ร้ายแรง