Bắt đầu sử dụng Crashlytics cho các nền tảng của Apple

Chọn nền tảng: iOS+ Android Android NDK Flutter Unity


Hướng dẫn này mô tả cách bắt đầu sử dụng Firebase Crashlytics trong ứng dụng nền tảng Apple (ví dụ: ứng dụng iOS).

Sau khi thiết lập SDK Firebase Crashlytics trong ứng dụng, bạn có thể xem báo cáo sự cố toàn diện trong bảng điều khiển Firebase. Với Crashlytics cho nền tảng Apple, bạn sẽ nhận được báo cáo về các sự cố và lỗi không nghiêm trọng.

Để thiết lập Crashlytics, bạn cần thực hiện các tác vụ trong cả bảng điều khiển Firebase và IDE (như thêm tệp cấu hình Firebase và Crashlytics SDK). Để hoàn tất quá trình 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 đến Firebase.

Trước khi bắt đầu

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

  2. Nên làm: Để tự động nhận nhật ký đường dẫn để hiểu các hành động của người dùng dẫn đến sự cố hoặc sự kiện không nghiêm trọng, bạn cần bật Google Analytics trong dự á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.

    • Nếu đang sử dụng dự án Firebase hiện có chưa bật Google Analytics bạn có thể bật trong Settings > Integrations trang của Firebase bảng điều khiển.

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

Bước 1: Thêm SDK Crashlytics vào ứng dụng

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 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ý đường dẫn, hãy thêm Firebase SDK 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.
  6. Thêm cờ -ObjC vào phần Other Linker Flags (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ỉ macOS) Trong Info.plist, hãy thêm khoá 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 các phần phụ thuộc 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 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 các 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ý các tệp này và tải các tệp lên bất cứ khi nào 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 trong trình điều hướng bên trái.

  2. Trong danh sách TARGETS (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 dSYM cho bản dựng của bạn.

    1. Nhấp vào All (Tất cả), sau đó 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 (Giai đoạn bản dựng), sau đó hoàn tất các bước sau để Xcode có thể xử lý dSYM và tải các tệp lên.

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

      Đảm bảo rằng giai đoạn Run Script (Tập lệnh chạy) mới này là giai đoạn bản dựng cuối cùng của dự án ; nếu không, Crashlytics sẽ không thể xử lý dSYM đúng cách.

    2. Mở rộng phần Run Script (Tập lệnh chạy) mới.

    3. Trong trường tập lệnh (nằm trong 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 và tải các tệp lên Crashlytics.

      "${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run"
    4. Trong phần 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)
      Nếu bạn có ENABLE_USER_SCRIPT_SANDBOXING=YESENABLE_DEBUG_DYLIB=YES trong chế độ cài đặt bản dựng dự án, hãy thêm những nội dung sau:
      ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

Để 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 các 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ố đã khử rối.

Bước 3: Xác định sự cố thử nghiệm để hoàn tất việc thiết lập

Để hoàn tất việc thiết lập Crashlytics và xem dữ liệu ban đầu trên Crashlytics trang tổng quan của bảng điều khiển 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ể dùng để xác định sự cố thử nghiệm.

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

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

    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 trong Xcode khi trình gỡ lỗi Xcode bị ngắt kết nối.

    1. Nhấp vào Build and then run the current scheme (Tạo rồi chạy lược đồ hiện tại) để tạo ứng dụng 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 đang chạy, sau đó nhấp vào Stop running the scheme or action để đóng thực thể ban đầu của ứng dụng. Thực thể ban đầu này bao gồm trình gỡ lỗi gây cản trở Crashlytics.

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

    1. Mở ứng dụng trên 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 vào nút "Test Crash" (Kiểm thử 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 đó trong Xcode để ứng dụng có thể gửi báo cáo sự cố đến Firebase.

  4. Trong bảng điều khiển Firebase, hãy chuyển đến trang tổng quan DevOps & Engagement > Crashlytics để kiểm tra báo cáo sự cố thử nghiệm .

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


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

Các bước tiếp theo