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 gỡ rối mã nguồn và con người có thể đọc được. Hành vi này được đặt khi bạn thêm tập lệnh chạy khởi tạo Crashlytics vào giai đoạn xây dựng ứng dụng của bạn.
Thật không may, có một vài trường hợp có thể khiến quá trình tải lên dSYM của bạn không thành công, chẳng hạn như mã bit trong ứng dụng của bạn hoặc các cấu hình dự án độc đáo khác. 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ị dSYM của ứng dụng của bạn.
Kiểm tra xem Xcode có đang tạo dSYM không
Thông thường, các tệp dSYM bị thiếu vì đơn giản là Xcode không tạo ra chúng. Khi tải lên không thành công, Crashlytics sẽ 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 đúng dSYM cho mọi bản dựng không:
Mở dự án của bạn trong Xcode và chọn tệp dự án trong Xcode Navigator.
Chọn mục tiêu xây dựng chính của bạn.
Mở tab Cài đặt bản dựng của mục tiêu, sau đó nhấp vào Tất cả .
Tìm kiếm "định dạng thông tin gỡ lỗi".
Đặt Định dạng thông tin gỡ lỗi thành DWARF với Tệp dSYM cho tất cả cá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, các báo cáo sự cố của bạn sẽ xuất hiện trong bảng điều khiển Firebase. 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ị dSYM của bạn và tải nó lên Crashlytics theo cách thủ công.
Xác định vị trí dSYM của bạn
Đôi khi Crashlytics không thể định vị dSYM của ứng dụng do cấu hình mã bit hoặc khả năng kết nối của bảng điều khiển. Khi điều này xảy ra, bạn có thể khắc phục sự cố theo hai cách khác:
Tải lên dSYM của bạn
Để tải lên dSYM của bạn theo cách thủ công, bạn có thể 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 kho lưu trữ zip chứa các tệp dSYM của bạn (đi tới bảng điều khiển Firebase > Crashlytics > tab dSYM ).
Ngoài ra, để dự phòng, Crashlytics bao gồm một 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 của mình để tải lên các tệp dSYM của mình theo cách thủ công. Tập lệnh cung cấp thêm thông tin về quy trình tải lên và thông báo lỗi toàn diện hơn (đối với ghi chú sử dụng và hướng dẫn bổ sung, hãy chạy upload-symbols
mà không có bất kỳ tham số nào).
Khi tải lên các dSYM bitcode, có thể hữu ích khi xóa mọi tệp Biểu tượng trong kho lưu trữ zip bằng cách chạy:
unzip appDsyms.zip
cd appDsyms rm -rf $(find . | grep Icon)
# Enumerate all the dSYMs
upload-symbols ... $(ls)
Để chạy tập lệnh upload-symbols
, hãy sử dụng một trong các tùy chọn sau:
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 \{\}
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