Theo mặc định, Firebase Crashlytics sẽ tự động xử lý biểu tượng gỡ lỗi của bạn (dSYM) để cung cấp cho bạn báo cáo sự cố đã được gỡ rối mã nguồn 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 ban đầu của Crashlytics trong ứng dụng của bạn, cụ thể là bằng cách thêm tập lệnh chạy tự động tải các tệp dSYM lên trong giai đoạn tạo bản dựng của ứng dụng.
Rất tiếc, có một số trường hợp có thể khiến các tệp dSYM tự động của bạn tải lê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 tìm được tệp dSYM của ứng dụng.
Đảm bảo Xcode có thể tự động xử lý dSYM và tải các tệp lên
Khi thiết lập Crashlytics trong ứng dụng, bạn đã định cấu hình một tập lệnh chạy để tự động xử lý dSYM và tải tệp lên.
Hãy đảm bảo cấu hình của bạn cho tập lệnh chạy Crashlytics đang
để nắm bắt các yêu cầu mới bắt đầu từ Xcode 15. Nếu
cấu hình không được 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 một bộ
vị trí tệp. Đối với tập lệnh chạy Crashlytics
(firebase-ios-sdk/Crashlytics/run
), hãy đảm bảo rằng bạn có:
cài đặt:
Nhấp vào thẻ Build Phases (Tạo giai đoạn), sau đó mở rộng mục Run Script (Chạy tập lệnh).
Trong mục Input Files (Tệp đầu vào), hãy đảm bảo rằng bạn có đường dẫn cho các vị trí này trong số 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ó đang tạo dSYMs hay không
Đôi khi, các tệp dSYM bị thiếu vì đơn giản là Xcode không tạo ra chúng. Khi không tải lên được, Crashlytics sẽ hiện thông báo "Thiếu dSYM" cảnh báo sau 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 để đảm bảo rằng Xcode tạo dSYM chính xác cho mọi bản dựng:
Mở dự án của bạn trong Xcode rồi chọn tệp dự án trong Xcode Trình điều hướng.
Chọn mục tiêu bản dựng chính.
Mở thẻ Build Settings (Cài đặt bản dựng) của mục tiêu, sau đó nhấp vào All (Tất cả).
Tìm kiếm
debug information format
Đặt Định dạng thông tin gỡ lỗi thành DWARF với tệp dSYM cho tất cả loại bản dựng của bạn.
Xây dựng lại ứng dụng của bạn.
Giờ đây, báo cáo sự cố của bạn sẽ xuất hiện trong Trang tổng quan của Crashlytics. Nếu vấn đề này vẫn tiếp diễn hoặc bạn gặp các lỗi khác, hãy thử xác định vị trí dSYMs và tải chúng lên Crashlytics theo cách thủ công.
Xác định vị trí dSYM trên máy cục bộ
Chạy lệnh sau để hiển thị tất cả dSYMs của bạn UUID 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
Sau khi bạn tìm thấy dSYM, hãy tải tệp lên Crashlytics theo cách thủ công.
Nếu lệnh mdfind
không trả về kết quả nào, bạn có thể xem trong
Thư mục Products
chứa .app
của bạn (theo mặc định, Products
nằm trong Derived Data
). Nếu ứng dụng được phát hành công khai,
bạn cũng có thể tìm dSYM của tệp đó trong thư mục .xcarchive
trên ổ đĩa:
Trong Xcode, hãy mở cửa sổ organizationr (Trình tổ chức) rồi chọn ứng dụng của bạn trên danh sách. Xcode hiển thị danh sách bản lưu trữ cho dự án của bạn.
Giữ phím Control và nhấp vào một tệp lưu trữ để xem trong Finder. Giữ phím Control trong khi nhấp vào nút này một lần nữa và sau đó nhấp vào Show Package Contents (Hiện nội dung gói).
Trong
.xcarchive
là một thư mục dSYMs chứa các dSYM được tạo dưới dạng là một phần của quy trình lưu trữ của Xcode.
Tải dSYM lên
Crashlytics hỗ trợ nhiều cách để tải các tệp dSYMs lên, có thể là: tự động hoặc theo cách thủ công.
(Nên dùng) Tự động xử lý dSYM và tải các tệp lên
Khi thiết lập Crashlytics lần đầu, nhiều khả năng bạn đã định cấu hình chế độ này tự động tải lên cho ứng dụng của mình. Tuy nhiên, nếu chế độ 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 tệp dSYM lên theo cách thủ công
Nếu tự động tải lên không thành công, bạn có thể tải các tệp dSYM lên theo cách thủ công bằng cách sử dụng một trong hai tuỳ chọn sau.
Cách 1: Sử dụng tính năng "Kéo và thả" dựa trên bảng điều khiển để tải tệp zip lên chứa các tệp dSYM của bạn (truy cập Bảng điều khiển của Firebase > Crashlytics > dSYMs).
Cách 2: Sử dụng tập lệnh
upload-symbols
mà bạn có thể gọi từ đó ở bất kỳ đâu trong quy trình xây dựng để tải các tệp dSYM của bạn lên theo cách thủ công. Để chạyupload-symbols
tập lệnh, sử dụng một trong các tuỳ chọn sau:Cách A: Đưa dòng sau vào quy trình xây dựng:
find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
Cách 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
.