Nhận báo cáo sự cố dễ đọc trong trang tổng quan Crashlytics (Flutter)
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Theo mặc định, Firebase Crashlytics sẽ tự động đo lường dự án Flutter của bạn để tải các tệp biểu tượng cần thiết lên, đảm bảo báo cáo sự cố được giải mã và con người có thể đọc được.
Rất tiếc, có những trường hợp có thể khiến dự án không được định cấu hình đầy đủ. Hướng dẫn này trình bày chức năng của tính năng tự động hoá và cung cấp các bước đầu tiên để gỡ lỗi cho chế độ thiết lập dự án.
Nền tảng của Apple
Kiểm tra cấu hình để tải tệp dSYM lên
Việc thêm trình bổ trợ Flutter Crashlytics và chạy lệnh flutterfire configure sẽ cố gắng thêm một tập lệnh chạy vào không gian làm việc Xcode của dự án để tìm và tải các tệp biểu tượng dSYM cần thiết lên Crashlytics. Nếu không có các tệp này, bạn sẽ thấy cảnh báo "Thiếu dSYM" trong
trang tổng quan Crashlytics và các ngoại lệ sẽ được lưu giữ trong phần phụ trợ
cho đến khi bạn tải các tệp bị thiếu lên.
Nếu bạn gặp vấn đề này, trước tiên, hãy đảm bảo rằng bạn đã cài đặt tập lệnh chạy:
Tìm và mở tệp không gian làm việc Xcode trong thư mục iOS của dự án
(FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).
Xác định xem tập lệnh chạy có tiêu đề [firebase_crashlytics] Crashlytics Upload Symbols đã được thêm vào Build Phases (Giai đoạn xây dựng) của mục tiêu Runner hay chưa.
Nếu tập lệnh chạy này không tồn tại, bạn có thể thêm tập lệnh theo cách thủ công:
Tìm Mã ứng dụng Firebase cho ứng dụng Apple của bạn. Sau đây là hai nơi bạn có thể tìm thấy mã này:
Trong bảng điều khiển Firebase, hãy chuyển đến phần
settings > Cài đặt dự án.
Chuyển đến thẻ Ứng dụng của bạn, sau đó nhấp vào Ứng dụng Apple trên Firebase để xem thông tin của ứng dụng, bao gồm cả Mã ứng dụng.
Trong thư mục cấp cao nhất của dự án Flutter, hãy tìm tệp
firebase_options.dart. Mã ứng dụng Firebase cho ứng dụng Apple của bạn được gắn nhãn là appId.
Nhấp vào add > New Run Script Phase (Giai đoạn chạy tập lệnh mới).
Hãy đảm bảo giai đoạn Run Script (Chạy tập lệnh) mới này là giai đoạn tạo bản dựng cuối cùng của dự án. Nếu không, Crashlytics không thể xử lý dSYM đúng cách.
Mở rộng mục Chạy tập lệnh mới.
Trong trường tập lệnh (nằm dưới nhãn Shell), hãy thêm các tập lệnh chạy sau đây.
Các tập lệnh này xử lý tệp dSYM và tải tệp lên Crashlytics.
FIREBASE_APP_ID: Mã ứng dụng Apple trên Firebase (không phải mã nhận dạng gói Apple)
Ví dụ về mã ứng dụng Apple trên Firebase: 1:1234567890:ios:321abc456def7890
Bạn cần tìm Mã ứng dụng Firebase?
Sau đây là hai cách để tìm Mã ứng dụng Firebase:
Trong tệp GoogleService-Info.plist, Mã ứng dụng của bạn là giá trị GOOGLE_APP_ID; hoặc
Trong bảng điều khiển Firebase, hãy chuyển đến phần Cài đặt dự án.
Chuyển đến thẻ Ứng dụng của bạn, sau đó nhấp vào Ứng dụng Firebase mong muốn để tìm Mã ứng dụng.
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:
Xcode sẽ tìm các tệp đầu vào này ở những vị trí được chỉ định để đảm bảo rằng các tệp bản dựng có sẵn cho tập lệnh chạy. Ngoài ra, nếu bạn bật tính năng User Script Sandboxing (Chạy tập lệnh người dùng trong môi trường hộp cát), thì Xcode chỉ cho phép tập lệnh chạy truy cập vào các tệp được chỉ định trong Input Files (Tệp đầu vào).
Việc cung cấp vị trí của tệp dSYM trong dự án sẽ cho phép Crashlytics xử lý dSYM.
Việc cung cấp vị trí của tệp GoogleService-Info.plist đã tạo của ứng dụng sẽ cho phép Crashlytics liên kết dSYM với ứng dụng Firebase của bạn.
Việc cung cấp vị trí của tệp thực thi của ứng dụng cho phép tập lệnh chạy ngăn chặn việc tải lên trùng lặp cùng một dSYM. Xin lưu ý rằng tệp nhị phân của ứng dụng không được tải lên.
Tìm Mã ứng dụng Firebase cho ứng dụng Apple của bạn. Sau đây là hai nơi bạn có thể tìm thấy mã này:
Trong bảng điều khiển Firebase, hãy chuyển đến phần
settings > Cài đặt dự án.
Chuyển đến thẻ Ứng dụng của bạn, sau đó nhấp vào Ứng dụng Apple trên Firebase để xem thông tin của ứng dụng, bao gồm cả Mã ứng dụng.
Trong thư mục cấp cao nhất của dự án Flutter, hãy tìm tệp
firebase_options.dart. Mã ứng dụng Firebase cho ứng dụng Apple của bạn được gắn nhãn là appId.
Khi chạy tập lệnh upload-symbols, hãy sử dụng -ai FIREBASE_APPLE_APP_ID thay vì -gsp /path/to/GoogleService-Info.plist.
Kiểm tra cấu hình phiên bản cho Flutter và Crashlytics(nếu sử dụng cờ --split-debug-info)
Nếu dự án Flutter của bạn sử dụng cờ --split-debug-info (và có thể cả cờ --obfuscate), thì bạn cần thực hiện thêm các bước để hiển thị dấu vết ngăn xếp dễ đọc cho ứng dụng.
Đảm bảo rằng dự án của bạn đang sử dụng cấu hình phiên bản được đề xuất (Flutter 3.12.0 trở lên và trình bổ trợ Flutter Crashlytics phiên bản 3.3.4 trở lên) để dự án có thể tự động tạo và tải các biểu tượng Flutter (tệp dSYM) lên Crashlytics.
Android
Kiểm tra cấu hình phần phụ thuộc
Lệnh flutterfire configure sẽ cố gắng thêm các phần phụ thuộc cần thiết vào tệp bản dựng Gradle của dự án. Nếu không có các phần phụ thuộc này, báo cáo sự cố trong bảng điều khiển Firebase có thể bị làm rối mã nguồn nếu tính năng làm rối mã nguồn được bật.
Đảm bảo rằng các dòng sau có trong tệp build.gradle cấp dự án và trong tệp build.gradle cấp ứng dụng:
Trong tệp bản dựng cấp dự án (android/build.gradle), hãy kiểm tra dòng sau:
Trong tệp bản dựng cấp ứng dụng (android/app/build.gradle), hãy kiểm tra dòng sau:
// ... other importsandroid{// ... your android config}dependencies{// ... your dependencies}// This section must appear at the bottom of the fileapplyplugin:'com.google.gms.google-services'applyplugin:'com.google.firebase.crashlytics'
Kiểm tra để đảm bảo rằng bạn đang sử dụng CLI để tải ký hiệu Flutter lên (nếu sử dụng cờ --split-debug-info)
Nếu dự án Flutter của bạn sử dụng cờ --split-debug-info (và tuỳ ý sử dụng cả cờ --obfuscate), thì bạn cần thực hiện thêm các bước để hiển thị dấu vết ngăn xếp dễ đọc cho ứng dụng.
Sử dụng Firebase CLI (phiên bản 11.9.0 trở lên) để tải biểu tượng gỡ lỗi Flutter lên. Bạn cần tải các ký hiệu gỡ lỗi lên trước khi báo cáo sự cố từ một bản dựng mã bị làm rối mã nguồn.
Trong thư mục gốc của dự án Flutter, hãy chạy lệnh sau:
FIREBASE_APP_ID: Mã ứng dụng Android Firebase (không phải tên gói)
Ví dụ về Mã ứng dụng Android Firebase: 1:567383003300:android:17104a2ced0c9b9b
Bạn cần tìm Mã ứng dụng Firebase?
Sau đây là hai cách để tìm Mã ứng dụng Firebase:
Trong tệp google-services.json, Mã ứng dụng của bạn là giá trị mobilesdk_app_id; hoặc
Trong bảng điều khiển Firebase, hãy chuyển đến phần Cài đặt dự án.
Chuyển đến thẻ Ứng dụng của bạn, sau đó nhấp vào Ứng dụng Firebase mong muốn để tìm Mã ứng dụng.
PATH/TO/symbols: Cùng một thư mục mà bạn truyền đến cờ --split-debug-info khi tạo ứng dụng
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 2026-10-18 UTC."],[],[]]