เริ่มต้นใช้งาน Firebase Crashlytics

การเริ่มต้นอย่างรวดเร็วนี้จะอธิบายวิธีตั้งค่า Firebase Crashlytics ในแอปของคุณด้วย Firebase Crashlytics SDK เพื่อให้คุณรับรายงานข้อขัดข้องที่ครอบคลุมในคอนโซล Firebase

การตั้งค่า Crashlytics ต้องการงานทั้งในคอนโซล Firebase และ IDE ของคุณ (เช่น การเพิ่มไฟล์การกำหนดค่า Firebase และ Crashlytics SDK) ในการตั้งค่าให้เสร็จสิ้น คุณจะต้องบังคับให้การทดสอบขัดข้องเพื่อส่งรายงานข้อขัดข้องครั้งแรกไปยัง Firebase

ก่อนจะเริ่ม

  1. หากคุณยังไม่ได้ เพิ่ม Firebase ในโครงการ Apple ของคุณ หากคุณไม่มีแอป Apple คุณสามารถดาวน์โหลด แอปตัวอย่าง ได้

  2. แนะนำ : หากต้องการรับคุณลักษณะต่างๆ เช่น ผู้ใช้ที่ไม่มีข้อขัดข้อง บันทึกการแสดงเส้นทาง และการแจ้งเตือนความเร็ว คุณต้องเปิดใช้ Google Analytics ในโครงการ Firebase

    แพลตฟอร์ม Apple ทั้งหมดที่รองรับโดย Crashlytics (ยกเว้น watchOS) สามารถใช้ประโยชน์จากคุณสมบัติเหล่านี้จาก Google Analytics โปรดทราบว่าคุณต้องมี SDK v8.9.0+ สำหรับแอป macOS และ tvOS

    • หากโปรเจ็กต์ Firebase ที่คุณมีอยู่ไม่ได้เปิดใช้งาน Google Analytics คุณสามารถเปิดใช้งาน Google Analytics ได้จาก แท็บ การผสานการ ทำงานใน > การตั้ง ค่าโปรเจ็ กต์ในคอนโซล Firebase

    • หากคุณกำลังสร้างโปรเจ็กต์ Firebase ใหม่ ให้เปิดใช้ Google Analytics ระหว่างขั้นตอนการสร้างโปรเจ็กต์

ขั้นตอนที่ 1 : เพิ่ม Firebase Crashlytics SDK ลงในแอปของคุณ

ใช้ Swift Package Manager เพื่อติดตั้งและจัดการการพึ่งพา Firebase

  1. ใน Xcode เมื่อโปรเจ็กต์แอปของคุณเปิดอยู่ ให้ไปที่ File > Add Packages
  2. เมื่อได้รับแจ้ง ให้เพิ่มที่เก็บ SDK ของแพลตฟอร์ม Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. เลือกไลบรารี Crashlytics
  5. เพื่อประสบการณ์การใช้งาน Crashlytics ที่ดีที่สุด เราขอแนะนำให้ เปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase และเพิ่ม Firebase SDK สำหรับ Google Analytics ในแอปของคุณ คุณสามารถเลือกไลบรารีที่ไม่มีการรวบรวม IDFA หรือคอลเลกชัน IDFA
  6. เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดการพึ่งพาของคุณในเบื้องหลังโดยอัตโนมัติ

ถัดไป กำหนดค่าโมดูล Firebase:

  1. นำเข้าโมดูล Firebase ใน App struct หรือ UIApplicationDelegate ของคุณ:

    Swift

    import Firebase

    วัตถุประสงค์-C

    @import Firebase;
  2. กำหนดค่าอินสแตนซ์ที่ใช้ร่วมกันของ FirebaseApp โดยทั่วไปในเครื่องมือเริ่มต้นของ App ปหรือวิธีการของแอป application(_:didFinishLaunchingWithOptions:) ของผู้รับมอบสิทธิ์แอปของคุณ:

    Swift

    // 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 ของคุณโดยอัตโนมัติ ประมวลผล และอัปโหลดไฟล์ทุกครั้งที่คุณสร้างแอป

  1. เปิดพื้นที่ทำงาน Xcode ของโปรเจ็กต์ จากนั้นเลือกไฟล์โปรเจ็กต์ในแถบนำทางด้านซ้าย

  2. จากรายการ เป้าหมาย เลือกเป้าหมายการสร้างหลักของคุณ

  3. คลิกแท็บ การตั้งค่าบิล ด์ จากนั้นทำตามขั้นตอนต่อไปนี้เพื่อให้ Xcode สร้าง dSYM สำหรับบิลด์ของคุณ

    1. คลิก ทั้งหมด จากนั้นค้นหา debug information format

    2. ตั้งค่า รูปแบบข้อมูลการดีบัก เป็น DWARF with dSYM File สำหรับประเภทบิลด์ทั้งหมดของคุณ

  4. คลิกแท็บ Build Phases จากนั้นทำตามขั้นตอนต่อไปนี้เพื่อให้ Xcode สามารถประมวลผล dSYM ของคุณและอัปโหลดไฟล์ได้

    1. คลิก > เฟสรันสคริปต์ ใหม่

      ตรวจสอบให้แน่ใจว่าเฟส รันสคริปต์ ใหม่นี้เป็นเฟสสุดท้ายของโปรเจ็กต์ของคุณ มิฉะนั้น Crashlytics จะไม่สามารถประมวลผล dSYM ได้อย่างถูกต้อง

    2. ขยายส่วน Run Script ใหม่

    3. ในช่องสคริปต์ (อยู่ใต้ป้ายกำกับ Shell ) ให้เพิ่มสคริปต์การเรียกใช้ต่อไปนี้

      สคริปต์นี้ประมวลผลไฟล์ dSYM ของโปรเจ็กต์และอัปโหลดไฟล์ไปยัง Crashlytics

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. ในส่วน อินพุตไฟล์ ให้เพิ่มพาธสำหรับตำแหน่งของไฟล์ต่อไปนี้:

      • ตำแหน่งของ ไฟล์ 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 คุณต้องบังคับให้มีการทดสอบขัดข้อง

  1. เพิ่มโค้ดในแอปของคุณเพื่อใช้บังคับการทดสอบขัดข้อง

    คุณสามารถใช้รหัสต่อไปนี้เพื่อเพิ่มปุ่มในแอปของคุณซึ่งเมื่อกดแล้วจะทำให้เกิดข้อขัดข้อง ปุ่มนี้มีชื่อว่า "Test Crash"

    SwiftUI

    Button("Crash") {
      fatalError("Crash was triggered")
    }
    

    UIKit

    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]
      }
    }
    

    วัตถุประสงค์-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
    
  2. สร้างและเรียกใช้แอปของคุณใน Xcode

    1. คลิก Build แล้วเรียกใช้โครงร่างปัจจุบัน เพื่อสร้างแอปของคุณบนอุปกรณ์ทดสอบหรือโปรแกรมจำลอง

    2. รอจนกว่าแอปของคุณจะทำงาน จากนั้นคลิก หยุดการเรียกใช้แบบแผนหรือการดำเนินการ เพื่อปิดอินสแตนซ์เริ่มต้นของแอปของคุณ อินสแตนซ์เริ่มต้นนี้มีโปรแกรมแก้ไขข้อบกพร่องที่รบกวน Crashlytics

  3. บังคับให้การทดสอบขัดข้องเพื่อส่งรายงานข้อขัดข้องแรกของแอป:

    1. เปิดแอปของคุณจากหน้าจอหลักของอุปกรณ์ทดสอบหรือโปรแกรมจำลอง

    2. ในแอปของคุณ ให้กดปุ่ม "ทดสอบการขัดข้อง" ที่คุณเพิ่มโดยใช้โค้ดด้านบน

    3. หลังจากที่แอปของคุณขัดข้อง ให้เรียกใช้อีกครั้งจาก Xcode เพื่อให้แอปของคุณสามารถส่งรายงานข้อขัดข้องไปยัง Firebase

  4. ไปที่ แดชบอร์ด Crashlytics ของคอนโซล Firebase เพื่อดูข้อขัดข้องของการทดสอบ

    หากคุณได้รีเฟรชคอนโซลแล้วและยังไม่เห็นการทดสอบขัดข้องหลังจากผ่านไปห้านาที ให้เปิดใช้งานการบันทึกการแก้ไขข้อบกพร่อง เพื่อดูว่าแอปของคุณส่งรายงานข้อขัดข้องหรือไม่


และนั่นแหล่ะ! Crashlytics กำลังตรวจสอบแอปของคุณเพื่อหาข้อขัดข้อง ไปที่ แดชบอร์ดของ Crashlytics เพื่อดูและตรวจสอบรายงานและสถิติทั้งหมดของคุณ

ขั้นตอนถัดไป