| Chọn nền tảng: | iOS+ Android Flutter Unity |
Theo mặc định, Firebase Crashlytics sẽ tự động xử lý các tệp biểu tượng gỡ lỗi (dSYM) để cung cấp cho bạn các báo cáo sự cố đã được làm rõ và dễ đọ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 Crashlytics trong ứng dụng, cụ thể là bằng cách thêm một tập lệnh chạy tự động tải các tệp dSYM lên trong giai đoạn xây dựng ứng dụng.
Rất tiếc, có một số trường hợp có thể khiến quá trình tải tệp dSYM tự động 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 thể xác định vị trí cá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 các 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 theo các yêu cầu mới bắt đầu từ Xcode 15. Nếu cấu hình của bạn chưa được cập nhật, bạn có thể gặp 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 tập hợp 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 đã thiết lập
như sau:
Nhấp vào thẻ Build Phases (Giai đoạn xây dựng), sau đó mở rộng phần Run Script (Chạy tập lệnh).
Trong phần Input Files (Tệp đầu vào), hãy đả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
Nếu bạn có$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YESvàENABLE_DEBUG_DYLIB=YEStrong 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
Kiểm tra xem Xcode có tạo dSYM hay không
Thông thường, các tệp dSYM bị thiếu vì Xcode không tạo các tệp này. Khi quá trình tải lên không thành công, Crashlytics sẽ hiển thị cảnh báo "Missing dSYM" (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 để đảm bảo rằng Xcode đang tạo dSYM chính xác cho mọi bản dựng:
Mở dự án trong Xcode, sau đó chọn tệp dự án trong Trình điều hướng Xcode.
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 Debug Information Format (Định dạng thông tin gỡ lỗi) thành DWARF with dSYM File (DWARF có tệp dSYM) cho tất cả các loại bản dựng.
Xây dựng lại ứng dụng.
Bây giờ, báo cáo sự cố sẽ xuất hiện trong Crashlytics trang tổng quan. Nếu vấn đề vẫn tiếp diễn hoặc bạn gặp phải các lỗi khác, hãy thử xác định vị trí dSYM và tải các tệp này 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ả UUID của dSYM trên máy và tìm kiếm dSYM bị thiếu:
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
Sau khi tìm thấy dSYM, hãy tải tệp này 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ể tìm trong thư mục Products nơi .app tồn tại (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 cho bản phát hành công khai, bạn cũng có thể tìm dSYM của ứng dụng trong thư mục .xcarchive trên ổ đĩa:
Trong Xcode, hãy mở cửa sổ Organizer (Trình sắp xếp), sau đó chọn ứng dụng của bạn trong danh sách. Xcode hiển thị danh sách các tệp lưu trữ cho dự án của bạn.
Nhấn giữ phím Control rồi nhấp vào một tệp lưu trữ để xem tệp đó trong Finder. Nhấn giữ phím Control rồi nhấp lại vào tệp đó, sau đó nhấp vào Show Package Contents (Hiển thị nội dung gói).
Trong
.xcarchivelà một thư mục dSYMs chứa các dSYM được tạo trong quá trình lưu trữ của Xcode.
Tải dSYM lên
Crashlytics hỗ trợ nhiều cách để tải tệp dSYM lên, hoặc tự động hoặc 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, 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. 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 để đảm bảo rằng cấu hình của bạn là chính xác.
Tải tệp dSYM lên theo cách thủ công
Nếu quá trình tải lên tự động không thành công, bạn có thể tải tệp dSYM lên theo cách thủ công bằng một trong các lựa chọn sau.
Lựa chọn 1: Sử dụng lựa chọn "Kéo và thả" dựa trên bảng điều khiển để tải tệp zip chứa các tệp dSYM lên (chuyển đến Firebase bảng điều khiển > Crashlytics > dSYMs tab).
Lựa chọn 2: Sử dụng tập lệnh
upload-symbolsmà bạn có thể gọi từ bất kỳ vị trí nào trong quy trình xây dựng để tải tệp dSYM lên theo cách thủ công. Để chạy tập lệnhupload-symbols, hãy sử dụng một trong các lựa chọn sau:Lựa chọn A: Thêm 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 \{\}
Lựa chọn B: Chạy tập lệnh trực tiếp từ thiết bị đầu cuối:
/PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs
Để biết ghi chú về cách sử dụng và hướng dẫn bổ sung về tập lệnh này, hãy chạy
upload-symbolsvới tham số--help.