Bắt đầu với Firebase Crashlytics

Hướng dẫn bắt đầu nhanh này mô tả cách thiết lập Firebase Crashlytics trong ứng dụng của bạn bằng SDK Firebase Crashlytics để bạn có thể nhận báo cáo sự cố toàn diện trong bảng điều khiển Firebase.

Việc thiết lập Crashlytics yêu cầu các tác vụ cả trong bảng điều khiển Firebase và IDE của bạn (như thêm tệp cấu hình Firebase và SDK Crashlytics). Để hoàn tất quá trình thiết lập, bạn cần buộc một sự cố thử nghiệm gửi báo cáo sự cố đầu tiên của mình tới Firebase.

Trước khi bắt đầu

  1. Nếu bạn chưa có, hãy thêm Firebase vào dự án Apple của bạn. Nếu chưa có ứng dụng Apple, bạn có thể tải xuống ứng dụng mẫu .

  2. Khuyến nghị : Để tự động nhận nhật ký đường dẫn nhằm hiểu hành động của người dùng dẫn đến sự cố, sự kiện không gây tử vong hoặc ANR, bạn cần bật Google Analytics trong dự án Firebase của mình.

    • Nếu dự án Firebase hiện tại của bạn chưa bật Google Analytics, bạn có thể bật Google Analytics từ tab Tích hợp của > Cài đặt dự án trong bảng điều khiển Firebase.

    • Nếu bạn đang tạo dự án Firebase mới, hãy bật Google Analytics trong quy trình tạo dự án.

    Lưu ý rằng nhật ký đường dẫn có sẵn cho tất cả các nền tảng Apple được Crashlytics hỗ trợ ngoại trừ watchOS.

Bước 1 : Thêm SDK Crashlytics vào ứng dụng của bạn

Sử dụng Trình quản lý gói Swift để cài đặt và quản lý các phần phụ thuộc của Firebase.

  1. Trong Xcode, khi dự án ứng dụng của bạn đang mở, hãy điều hướng đến File > Add Packages .
  2. Khi được nhắc, hãy thêm kho lưu trữ SDK nền tảng Firebase của Apple:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Chọn thư viện Crashlytics.
  5. Để tận dụng nhật ký breadcrumb , hãy thêm SDK Firebase cho Google Analytics vào ứng dụng của bạn. Đảm bảo rằng Google Analytics được bật trong dự án Firebase của bạn.
  6. Thêm cờ -ObjC vào phần Cờ liên kết khác trong cài đặt bản dựng của mục tiêu của bạn.
  7. (chỉ macOS) Trong Info.plist của bạn, hãy thêm khóa NSApplicationCrashOnExceptions và đặt thành YES .
  8. Khi hoàn tất, Xcode sẽ tự động bắt đầu phân giải và tải xuống các phần phụ thuộc của bạn ở chế độ nền.

Tiếp theo, định cấu hình mô-đun Firebase:

  1. Nhập mô-đun Firebase trong cấu trúc App hoặc UIApplicationDelegate của bạn:

    Nhanh

    import Firebase

    Mục tiêu-C

    @import Firebase;
  2. Định cấu hình phiên bản chia sẻ FirebaseApp , thường là trong phương thức application(_:didFinishLaunchingWithOptions:) của đại biểu ứng dụng của bạn:

    Nhanh

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

    Mục tiêu-C

    // Use the Firebase library to configure APIs.
    [FIRApp configure];
    

Bước 2 : Thiết lập Xcode để tự động upload file dSYM

Để tạo báo cáo sự cố mà con người có thể đọc được, Crashlytics cần tệp biểu tượng gỡ lỗi (dSYM) của dự án của bạn. Các bước sau đây mô tả cách định cấu hình Xcode để tự động tạo dSYM của bạn, xử lý chúng và tải tệp lên bất cứ khi nào bạn xây dựng ứng dụng của mình.

  1. Mở không gian làm việc Xcode của dự án của bạn, sau đó chọn tệp dự án trong trình điều hướng bên trái.

  2. Từ danh sách MỤC TIÊU , chọn mục tiêu xây dựng chính của bạn.

  3. Nhấp vào tab Cài đặt bản dựng , sau đó hoàn thành các bước sau để Xcode tạo dSYM cho bản dựng của bạn.

    1. Bấm vào Tất cả , sau đó tìm kiếm debug information format .

    2. Đặt Định dạng thông tin gỡ lỗi thành DWARF with dSYM File cho tất cả các loại bản dựng của bạn.

  4. Nhấp vào tab Build Phases , sau đó hoàn thành các bước sau để Xcode có thể xử lý dSYM của bạn và tải tệp lên.

    1. Nhấp vào > Giai đoạn tập lệnh chạy mới .

      Đảm bảo giai đoạn Run Script mới này là giai đoạn xây dựng cuối cùng của dự án của bạn; nếu không, Crashlytics không thể xử lý dSYM đúng cách.

    2. Mở rộng phần Run Script mới.

    3. Trong trường tập lệnh (nằm dưới nhãn Shell ), hãy thêm tập lệnh chạy sau.

      Tập lệnh này xử lý các tệp dSYM của dự án của bạn và tải các tệp lên Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. Trong phần Tệp đầu vào , thêm đường dẫn cho vị trí của các tệp sau:

      ${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)

Để biết thêm thông tin chi tiết về các tệp dSYM và Crashlytics (bao gồm cách tải lên các tệp dSYM theo cách thủ công), hãy truy cập Nhận báo cáo sự cố đã được giải mã .

Bước 3 : Buộc chạy thử nghiệm để hoàn tất quá trình thiết lập

Để hoàn tất việc thiết lập Crashlytics và xem dữ liệu ban đầu trong bảng điều khiển Crashlytics của bảng điều khiển Firebase, bạn cần thực hiện thử nghiệm sự cố.

  1. Thêm mã vào ứng dụng của bạn mà bạn có thể sử dụng để buộc thử nghiệm gặp sự cố.

    Bạn có thể sử dụng mã sau đây để thêm một nút vào ứng dụng của mình mà khi nhấn vào sẽ gây ra sự cố. Nút được gắn nhãn "Kiểm tra sự cố".

    SwiftUI

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

    UIKit

    Nhanh

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

    Mục tiêu-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. Xây dựng và chạy ứng dụng của bạn trong Xcode khi trình gỡ lỗi Xcode bị ngắt kết nối.

    1. Nhấp vào Build rồi chạy sơ đồ hiện tại để xây dựng ứng dụng của bạn trên thiết bị thử nghiệm hoặc trình mô phỏng.

    2. Đợi cho đến khi ứng dụng của bạn chạy, sau đó nhấp vào Dừng chạy lược đồ hoặc hành động để đóng phiên bản ban đầu của ứng dụng. Phiên bản ban đầu này bao gồm trình gỡ lỗi can thiệp vào Crashlytics.

  3. Buộc thử nghiệm sự cố để gửi báo cáo sự cố đầu tiên cho ứng dụng của bạn:

    1. Mở ứng dụng của bạn từ màn hình chính của thiết bị thử nghiệm hoặc trình mô phỏng.

    2. Trong ứng dụng của bạn, hãy nhấn nút "Kiểm tra sự cố" mà bạn đã thêm bằng mã ở trên.

    3. Sau khi ứng dụng của bạn gặp sự cố, hãy chạy lại ứng dụng đó từ Xcode để ứng dụng của bạn có thể gửi báo cáo sự cố tới Firebase.

  4. Đi tới trang tổng quan Crashlytics của bảng điều khiển Firebase để xem sự cố thử nghiệm của bạn.

    Nếu bạn đã làm mới bảng điều khiển và vẫn không thấy lỗi kiểm tra sau 5 phút, hãy bật tính năng ghi nhật ký gỡ lỗi để xem ứng dụng của bạn có gửi báo cáo lỗi hay không.


Và thế là xong! Crashlytics hiện đang theo dõi ứng dụng của bạn để phát hiện sự cố. Truy cập trang tổng quan Crashlytics để xem và điều tra tất cả các báo cáo và số liệu thống kê của bạn.

Bước tiếp theo