Nhận báo cáo sự cố có thể đọc được trong bảng điều khiển Crashlytics

Theo mặc định, Firebase Crashlytics tự động xử lý các tệp biểu tượng gỡ lỗi (dSYM) của bạn để cung cấp cho bạn các báo cáo sự cố đã được giải mã và con người có thể đọc được. Bạn thường định cấu hình hành vi này trong quá trình thiết lập Crashlytics ban đầu trong ứng dụng của mình, cụ thể bằng cách thêm tập lệnh chạy tự động tải lên các tệp dSYM trong giai đoạn xây dựng ứng dụng của bạn.

Thật không may, có một số trường hợp có thể khiến quá trình tải lên tệp dSYM tự động của bạn không thành công. Hướng dẫn này cung cấp một số cách khắc phục sự cố khi Crashlytics không thể định vị tệp dSYM của ứng dụng của bạn.

Đảm bảo Xcode có thể tự động xử lý dSYM và tải tệp lên

Khi thiết lập Crashlytics trong ứng dụng của bạn, bạn đã định cấu hình tập lệnh chạy để tự động xử lý dSYM và tải tệp lên.

Đảm bảo rằng cấu hình của bạn cho tập lệnh chạy Crashlytics được cập nhật với các yêu cầu mới bắt đầu bằng Xcode 15. Nếu cấu hình của bạn không cập nhật, bạn có thể gặp phải lỗi sau:
error: Info.plist Error Unable to process Info.plist at path ... .

Cụ thể, Xcode 15 trở lên yêu cầu bạn cung cấp bộ vị trí tệp đầy đủ hơn. Đối với tập lệnh chạy Crashlytics của bạn ( firebase-ios-sdk/Crashlytics/run ), hãy đảm bảo rằng bạn có thiết lập sau:

  1. Bấm vào tab Giai đoạn xây dựng , sau đó mở rộng phần Chạy tập lệnh .

  2. Trong phần Tệp đầu vào , đảm bảo bạn có đườ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)

Kiểm tra xem Xcode có tạo ra dSYM không

Thông thường, các tệp dSYM bị thiếu vì Xcode không tạo ra chúng. Khi tải lên không thành công, Crashlytics hiển thị cảnh báo "Thiếu dSYM" trong bảng điều khiển Firebase. Nếu bạn nhận được cảnh báo này, trước tiên hãy kiểm tra xem Xcode có đang tạo dSYM chính xác cho mọi bản dựng hay không:

  1. Mở dự án của bạn trong Xcode, sau đó chọn tệp dự án trong Xcode Navigator.

  2. Chọn mục tiêu xây dựng chính của bạn.

  3. Mở tab Cài đặt bản dựng của mục tiêu và sau đó nhấp vào Tất cả .

  4. Tìm kiếm debug information format .

  5. Đặt Định dạng thông tin gỡ lỗi thành DWARF bằng Tệp dSYM cho tất cả các loại bản dựng của bạn.

  6. Xây dựng lại ứng dụng của bạn.

Báo cáo sự cố của bạn bây giờ sẽ xuất hiện trong bảng điều khiển Crashlytics . Nếu sự cố vẫn tiếp diễn hoặc bạn gặp phải các lỗi khác, hãy thử định vị các dSYM của bạntải chúng lên Crashlytics theo cách thủ công .

Xác định vị trí dSYM của bạn trên máy cục bộ

Chạy lệnh sau để hiển thị tất cả UUID của dSYM trên máy của bạn và tìm kiếm dSYM bị thiếu:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

Khi bạn tìm thấy dSYM, hãy tải nó lên Crashlytics theo cách thủ công . Nếu lệnh mdfind không trả về bất kỳ kết quả nào, bạn có thể xem trong thư mục Products nơi chứa .app của bạn (theo mặc định, thư mục Products nằm trong Derived Data ). Nếu ứng dụng của bạn được phát hành chính thức, bạn cũng có thể tìm dSYM của nó trong thư mục .xcarchive trên đĩa:

  1. Trong Xcode, hãy mở cửa sổ Trình tổ chức , sau đó chọn ứng dụng của bạn từ danh sách. Xcode hiển thị danh sách lưu trữ cho dự án của bạn.

  2. Giữ Control khi bấm vào kho lưu trữ để xem nó trong Finder. Bấm Control lần nữa rồi bấm vào Hiển thị nội dung gói .

  3. Trong .xcarchive là thư mục dSYMs chứa các dSYM được tạo như một phần của quy trình lưu trữ của Xcode.

Tải lên dSYM của bạn

Crashlytics hỗ trợ nhiều cách để tải lên tệp dSYM của bạn, tự động hoặc thủ công .

(Được khuyến nghị) Tự động xử lý dSYM của bạn và tải tệp lên

Khi bạn thiết lập Crashlytics lần đầu tiên, rất có thể bạn đã định cấu hình hành vi tải lên tự động này cho ứng dụng của mình. Tuy nhiên, nếu quá trình tải lên tự động không thành công, hãy kiểm tra xem cấu hình của bạn có đúng không .

Tải lên các tệp dSYM của bạn theo cách thủ công

Nếu tải lên tự động không thành công, bạn có thể tải tệp dSYM của mình lên theo cách thủ công bằng một trong các tùy chọn sau.

  • Tùy chọn 1 : Sử dụng tùy chọn "Kéo và thả" dựa trên bảng điều khiển để tải lên tệp zip chứa các tệp dSYM của bạn (đi tới bảng điều khiển Firebase > tab Crashlytics > dSYMs ).

  • Tùy chọn 2 : Sử dụng tập lệnh upload-symbols mà bạn có thể gọi từ bất kỳ đâu trong quá trình xây dựng để tải lên các tệp dSYM của mình theo cách thủ công. Để chạy tập lệnh upload-symbols , hãy sử dụng một trong các tùy chọn sau:

    • Tùy chọn A : Bao gồm dòng sau trong quá trình xây dựng của bạn:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • Tùy chọn B : Chạy tập lệnh trực tiếp từ thiết bị đầu cuối của bạn:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Để biết ghi chú sử dụng và hướng dẫn bổ sung về tập lệnh này, hãy chạy upload-symbols với tham số --help .