การเริ่มต้นอย่างรวดเร็วนี้จะอธิบายวิธีตั้งค่า 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 ใหม่ ให้เปิดใช้งาน Google Analytics ในระหว่างขั้นตอนการสร้างโปรเจ็กต์
ขั้นตอนที่ 1 : เพิ่ม Crashlytics SDK ลงในแอปของคุณ
ใช้ Swift Package Manager เพื่อติดตั้งและจัดการการพึ่งพา Firebase
- ใน Xcode เมื่อโปรเจ็กต์แอปของคุณเปิดอยู่ ให้ไปที่ File > Add Package
- เมื่อได้รับแจ้ง ให้เพิ่มพื้นที่เก็บข้อมูล SDK แพลตฟอร์ม Firebase Apple:
- เลือกไลบรารี Crashlytics
- เพิ่มแฟล็ก
-ObjC
ไปยังส่วน Other Linker Flags ของการตั้งค่า build ของเป้าหมายของคุณ - เพื่อประสบการณ์การใช้งาน Crashlytics ที่ดีที่สุด เราขอแนะนำ ให้เปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase และเพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอปของคุณ คุณสามารถเลือกไลบรารีที่ไม่มีการรวบรวม IDFA หรือด้วยการรวบรวม IDFA
- เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดการอ้างอิงของคุณโดยอัตโนมัติในเบื้องหลัง
https://github.com/firebase/firebase-ios-sdk.git
จากนั้นกำหนดค่าโมดูล 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 ของโปรเจ็กต์ของคุณ จากนั้นเลือกไฟล์โปรเจ็กต์ในแถบนำทางด้านซ้าย
จากรายการ เป้าหมาย ให้เลือกเป้าหมายบิลด์หลักของคุณ
คลิกแท็บ การตั้งค่าบิวด์ จากนั้นทำตามขั้นตอนต่อไปนี้ให้สมบูรณ์เพื่อให้ Xcode สร้าง dSYM สำหรับงานบิวด์ของคุณ
คลิก ทั้งหมด จากนั้นค้นหา
debug information format
ตั้ง ค่ารูปแบบข้อมูลการแก้ไขจุดบกพร่อง เป็น
DWARF with dSYM File
สำหรับบิลด์ทุกประเภทของคุณ
คลิกแท็บ ระยะการสร้าง จากนั้นทำตามขั้นตอนต่อไปนี้เพื่อให้ Xcode สามารถประมวลผล dSYM ของคุณและอัพโหลดไฟล์ได้
คลิก
> เฟสสคริปต์การรันใหม่ตรวจสอบให้แน่ใจว่าเฟส Run Script ใหม่นี้เป็นเฟสการสร้างสุดท้ายของโปรเจ็กต์ของคุณ ไม่เช่นนั้น 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") }
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 โดยไม่ได้เชื่อมต่อดีบักเกอร์ Xcode
คลิก
Build จากนั้นเรียกใช้รูปแบบปัจจุบัน เพื่อสร้างแอปของคุณบนอุปกรณ์ทดสอบหรือโปรแกรมจำลองรอจนกระทั่งแอปของคุณทำงาน จากนั้นคลิก
เรียกใช้รูปแบบหรือการดำเนินการ เพื่อปิดอินสแตนซ์เริ่มต้นของแอปของคุณ อินสแตนซ์เริ่มต้นนี้มีดีบักเกอร์ที่รบกวน Crashlytics
บังคับให้ทดสอบข้อขัดข้องเพื่อส่งรายงานข้อขัดข้องแรกของแอป:
เปิดแอปของคุณจากหน้าจอหลักของอุปกรณ์ทดสอบหรือเครื่องจำลองของคุณ
ในแอปของคุณ ให้กดปุ่ม "ทดสอบข้อขัดข้อง" ที่คุณเพิ่มโดยใช้โค้ดด้านบน
หลังจากที่แอปของคุณขัดข้อง ให้เรียกใช้อีกครั้งจาก Xcode เพื่อให้แอปของคุณสามารถส่งรายงานข้อขัดข้องไปยัง Firebase
ไปที่ แดชบอร์ด Crashlytics ของคอนโซล Firebase เพื่อดูการทดสอบข้อขัดข้อง
หากคุณรีเฟรชคอนโซลแล้ว แต่ยังไม่เห็นการทดสอบข้อขัดข้องหลังจากผ่านไปห้านาที ให้เปิดใช้งานการบันทึกการแก้ไขข้อบกพร่อง เพื่อดูว่าแอปของคุณส่งรายงานข้อขัดข้องหรือไม่
แค่นั้นแหละ! Crashlytics กำลังตรวจสอบแอปของคุณเพื่อหาข้อขัดข้อง ไปที่ แดชบอร์ด Crashlytics เพื่อดูและตรวจสอบรายงานและสถิติทั้งหมดของคุณ
ขั้นตอนถัดไป
- ปรับแต่งการตั้งค่ารายงานข้อขัดข้องของคุณ โดยเพิ่มการรายงานที่เลือก บันทึก คีย์ และการติดตามข้อผิดพลาดที่ไม่ร้ายแรง