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. Nhờ đó, các báo cáo sự cố sẽ được gỡ rối 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 những việc mà quy trình tự động hoá thực hiện 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 trường hợp ngoại lệ sẽ được giữ lại ở phần phụ trợ cho đến khi các tệp bị thiếu được tải lên.
Nếu bạn gặp phải 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 Giai đoạn xây dựng của mục tiêu Trình chạy 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. Dưới đây là 2 vị trí mà bạn có thể tìm thấy mã này:
Trong bảng điều khiển Firebase, hãy chuyển đế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 Firebase Apple để 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 tập lệnh chạy mới).
Đảm bảo rằng giai đoạn Run Script (Chạy tập lệnh) mới này là giai đoạn tạo cuối cùng của dự án. Nếu không, Crashlytics sẽ không thể xử lý dSYM đúng cách.
Mở rộng phần Chạy tập lệnh mới.
Trong trường tập lệnh (nằm bên 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 sẽ xử lý tệp dSYM và tải tệp lên Crashlytics.
FIREBASE_APP_ID: Mã ứng dụng Apple Firebase (không phải mã nhận dạng gói Apple)
Ví dụ về mã ứng dụng Apple Firebase: 1:1234567890:ios:321abc456def7890
Bạn cần tìm Mã ứng dụng Firebase?
Dưới đây là 2 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, rồi nhấp vào Ứng dụng Firebase mà bạn 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 kiế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 User Script Sandboxing (Hộp cát tập lệnh người dùng), 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 các tệp dSYM trong dự án sẽ cho phép Crashlytics xử lý dSYM.
Khi bạn cung cấp vị trí của tệp GoogleService-Info.plist đã tạo của ứng dụng, Crashlytics sẽ 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 các 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. Dưới đây là 2 vị trí mà bạn có thể tìm thấy mã này:
Trong bảng điều khiển Firebase, hãy chuyển đế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 Firebase Apple để 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 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 dùng cờ --split-debug-info)
Nếu dự án Flutter của bạn sử dụng cờ --split-debug-info (và tuỳ ý, cả cờ --obfuscate), thì bạn cần thực hiện các bước bổ sung để hiển thị dấu vết ngăn xếp có thể đọc được cho ứng dụng của mình.
Đả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 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 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 bạn bật tính năng làm rối mã nguồn.
Đảm bảo rằng các dòng sau có trong build.gradle ở cấp dự án và trong 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 giao diện dòng lệnh để tải biểu tượng Flutter lên (nếu dùng cờ --split-debug-info)
Nếu dự án Flutter của bạn sử dụng cờ --split-debug-info (và tuỳ ý, cả cờ --obfuscate), thì bạn cần thực hiện các bước bổ sung để hiển thị dấu vết ngăn xếp có thể đọc được cho ứng dụng của mình.
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 biểu tượng gỡ lỗi lên trước khi báo cáo sự cố từ bản dựng mã nguồn bị làm rối.
Từ 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 của bạn (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?
Dưới đây là 2 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, rồi nhấp vào Ứng dụng Firebase mà bạn 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