Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

เริ่มต้นใช้งาน 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 : เพิ่ม Crashlytics SDK ลงในแอปของคุณ

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

  1. ใน Xcode เมื่อโปรเจ็กต์แอปของคุณเปิดอยู่ ให้ไปที่ File > Add Packages
  2. เมื่อได้รับแจ้ง ให้เพิ่มที่เก็บ Firebase Apple platforms SDK:
  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 :

    สวิฟต์

    import Firebase

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

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

    สวิฟต์

    // Use the Firebase library to configure APIs.
    FirebaseApp.configure()
    

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

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    
ตัวยึดตำแหน่ง 100

ขั้นตอนที่ 2 : ตั้งค่า Xcode เพื่ออัปโหลดไฟล์ dSYM โดยอัตโนมัติ

หากต้องการสร้างรายงานข้อขัดข้องที่มนุษย์สามารถอ่านได้ Crashlytics ต้องการไฟล์สัญลักษณ์การแก้ไขข้อบกพร่อง (dSYM) ของโครงการ ขั้นตอนต่อไปนี้อธิบายวิธีกำหนดค่า Xcode เพื่อสร้าง dSYM ของคุณโดยอัตโนมัติ ประมวลผล และอัปโหลดไฟล์ทุกครั้งที่คุณสร้างแอป

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

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

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

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

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

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

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

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

    2. ขยายส่วน เรียกใช้สคริปต์ ใหม่

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

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

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. ในส่วน 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 ด้วยตนเอง) ให้ไปที่ รับ รายงานข้อขัดข้อง ที่ถอดรหัสซอร์สโค้ดที่สร้างความสับสน

ตัวยึด104

ขั้นตอนที่ 3 : บังคับให้ทดสอบข้อขัดข้องเพื่อสิ้นสุดการตั้งค่า

หากต้องการตั้งค่า Crashlytics ให้เสร็จสิ้นและดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase คุณต้องบังคับการทดสอบการหยุดทำงาน

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

    คุณสามารถใช้โค้ดต่อไปนี้เพื่อเพิ่มปุ่มในแอพของคุณ ซึ่งเมื่อกดแล้วจะทำให้เกิดข้อขัดข้อง ปุ่มนี้มีชื่อว่า "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
    
  2. สร้างและเรียกใช้แอปของคุณใน Xcode

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

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

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

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

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

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

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

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

ตัวยึด108


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

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