Bắt đầu sử dụng 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 Firebase Crashlytics SDK để bạn có thể nhận được báo cáo sự cố toàn diện trong bảng điều khiển của Firebase.

Để thiết lập Crashlytics, bạn cần thực hiện các thao tác trong cả bảng điều khiển của Firebase và IDE (chẳng hạn như thêm tệp cấu hình Firebase và SDK Crashlytics). Để hoàn tất việc thiết lập, bạn cần xác định sự cố thử nghiệm để gửi báo cáo sự cố đầu tiên cho Firebase.

Trước khi bắt đầu

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

  2. Đề xuất: Để tự động lấy nhật ký breadcrumb để hiểu những hành động của người dùng dẫn đến sự cố, sự kiện không nghiêm trọng hoặc sự kiện 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ừ thẻ Tích hợp của > Cài đặt dự án trong bảng điều khiển của Firebase.

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

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

Bước 1: Thêm Crashlytics SDK 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 Firebase.

  1. Trong Xcode, khi dự án ứng dụng của bạn đang mở, hãy chuyển đến File > Add Packages (Tệp > Thêm gói).
  2. Khi được nhắc, hãy thêm kho lưu trữ SDK nền tảng Apple của Firebase:
  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 (tập hợp liên kết phân cấp), hãy thêm cả Firebase SDK cho Google Analytics vào ứng dụng của bạn. Hãy nhớ bật Google Analytics trong dự án Firebase của bạn.
  6. Thêm cờ -ObjC vào mục Cờ trình liên kết khác trong chế độ cài đặt bản dựng của mục tiêu.
  7. (chỉ dành cho MacOS) Trong Info.plist, hãy thêm khoá NSApplicationCrashOnExceptions và đặt khoá đó thành YES.
  8. Khi hoàn tất, Xcode sẽ tự động bắt đầu phân giải và tải các phần phụ thuộc của bạn xuống ở chế độ nền.

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

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

    Swift

    import Firebase

    Objective-C

    @import Firebase;
  2. Định cấu hình một thực thể dùng chung của FirebaseApp, thường là trong phương thức application(_:didFinishLaunchingWithOptions:) của uỷ quyền ứng dụng:

    Swift

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

    Objective-C

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

Bước 2: Thiết lập Xcode để tự động tải các tệp dSYM lên

Để 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ác bước sau đây mô tả cách định cấu hình Xcode để tự động tạo dSYM, xử lý chúng và tải tệp lên mỗi khi bạn tạo ứng dụng.

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

  2. Trong danh sách MỤC TIÊU, hãy chọn mục tiêu bản dựng chính.

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

    1. Nhấp vào Tất cả, rồi tìm debug information format.

    2. Đặt Debug Information Format (Đị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.

  4. Nhấp vào thẻ Build Phases (Tạo giai đoạn), sau đó hoàn tất các bước sau để Xcode có thể xử lý dSYM và tải tệp lên.

    1. Nhấp vào > New Run Script Phase (Giai đoạn chạy tập lệnh mới).

      Hãy đảm bảo giai đoạn Chạy tập lệnh mới này là giai đoạn tạo bản dựng cuối cùng của dự án; nếu không, Crashlytics không thể xử lý dSYM đúng cách.

    2. Mở rộng mục Run Script (Chạy tập lệnh) mới.

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

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

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. Trong mục Input Files (Tệp đầu vào), hãy 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ả cách tải tệp dSYM lên theo cách thủ công), hãy xem bài viết Nhận báo cáo sự cố đã được gỡ rối mã nguồn.

Bước 3: Xác định sự cố 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 trên trang tổng quan Crashlytics trong bảng điều khiển của Firebase, bạn cần xác định sự cố thử nghiệm.

  1. Thêm mã vào ứng dụng mà bạn có thể sử dụng để xác định sự cố kiểm thử.

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

    SwiftUI

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

    Bộ công cụ giao diện người dùng

    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. Tạo và chạy ứng dụng của bạn trong Xcode khi đã ngắt kết nối trình gỡ lỗi Xcode.

    1. Nhấp vào Build rồi chạy lược đồ hiện tại để tạo ứng dụng trên một 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 giao thứ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 kiểm thử 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 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, hãy nhấn nút "Test Crash" (Kiểm thử sự cố) mà bạn đã thêm vào 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ố đến Firebase.

  4. Truy cập vào trang tổng quan Crashlytics trong bảng điều khiển của Firebase để xem sự cố kiểm thử của bạn.

    Nếu bạn đã làm mới bảng điều khiển mà vẫn không thấy sự cố kiểm thử 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ó đang gửi báo cáo sự cố hay không.


Chỉ vậy thôi! Crashlytics hiện đang theo dõi ứng dụng của bạn để phát hiện sự cố. Hãy truy cập vào trang tổng quan Crashlytics để xem và tìm hiểu tất cả các báo cáo và số liệu thống kê của bạn.

Các bước tiếp theo