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

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

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

ก่อนเริ่มต้น

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

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

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

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

    โปรดทราบว่าบันทึกเบรดครัมบ์มีให้ใช้งานในทุกแพลตฟอร์มของ Apple ที่ Crashlytics ยกเว้น watchOS

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

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

  1. เปิดโปรเจ็กต์แอปใน Xcode แล้วไปที่ไฟล์ > เพิ่มแพ็กเกจ
  2. เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ SDK สำหรับแพลตฟอร์ม Firebase ของ Apple ดังนี้
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. เลือกไลบรารี Crashlytics
  5. เพื่อใช้ประโยชน์จาก บันทึกเบรดครัมบ์ ให้เพิ่ม Firebase SDK สำหรับ Google Analytics ลงในแอปด้วย โปรดตรวจสอบว่า เปิดใช้ Google Analytics แล้ว ในโปรเจ็กต์ Firebase
  6. เพิ่มแฟล็ก -ObjC ลงในส่วนแฟล็ก Linker อื่นๆ ของการตั้งค่าบิลด์ของเป้าหมาย
  7. (macOS เท่านั้น) ใน Info.plist ให้เพิ่มคีย์ NSApplicationCrashOnExceptions และตั้งค่าเป็น YES
  8. เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ปัญหาและดาวน์โหลด ทรัพยากร Dependency ในเบื้องหลัง

ถัดไป ให้กำหนดค่าโมดูล Firebase ดังนี้

  1. นำเข้าโมดูล Firebase ในโครงสร้าง App หรือ UIApplicationDelegate ดังนี้

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. กำหนดค่าอินสแตนซ์ 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 โดยอัตโนมัติ ประมวลผล และอัปโหลดไฟล์ได้ทุกเมื่อ ที่คุณสร้างแอปเอง

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

  2. จากรายการเป้าหมาย ให้เลือกเป้าหมายบิลด์หลัก

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

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

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

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

    1. คลิก > เรียกใช้ระยะสคริปต์แบบใหม่

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

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

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

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

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

      ${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 คุณต้องบังคับใช้การทดสอบ ขัดข้อง

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

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

    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
    
  2. สร้างและเรียกใช้แอปใน Xcode โดยยกเลิกการเชื่อมต่อโปรแกรมแก้ไขข้อบกพร่อง Xcode

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

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

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

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

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

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

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

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


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

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