Nhận báo cáo sự cố có thể đọc được trên trang tổng quan Crashlytics
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 gỡ rối mã nguồn và dễ đọc.
Rất tiếc, có một số 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à tính năng tự động hoá thực hiện và cung cấp các bước đầu tiên để gỡ lỗi chế độ thiết lập dự án.
Nền tảng 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 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 phần phụ trợ giữ lại cho đến khi các tệp bị thiếu được tải 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 Các giai đoạn xây dựng của mục tiêu Runner hay chưa.
Tệp tập lệnh chạy để tự động tải dSYM lên không tồn tại
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à 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 settings > Cài đặt dự án.
Di chuyển xuống thẻ Ứng dụng của bạn, sau đó nhấp vào Ứng dụng Apple Firebase để xem thông tin về ứ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à GOOGLE_APP_ID.
Nhấp vào add >
New Run Script Phase (Giai đoạn tập lệnh chạy mới).
Đảm bảo giai đoạn Run Script (Chạy tập lệnh) mới này là giai đoạn bản dựng cuối cùng của dự án. Nếu không, Crashlytics không thể xử lý đúng cách các tệp dSYM.
Mở rộng phần Run Script (Chạy tập lệnh) mới.
Trong trường tập lệnh (nằm trong nhãn Shell), hãy thêm các tập lệnh chạy sau.
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 Firebase Apple (không phải
mã gói Apple)
Ví dụ về mã ứng dụng Firebase Apple: 1:1234567890:ios:321abc456def7890
Bạn cần tìm Mã ứng dụng Firebase?
Dưới đây là hai cách để tìm Mã ứng dụng Firebase:
Trong tệp GoogleService-Info.plist, Mã ứng dụng 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.
Di chuyển xuống thẻ Ứng dụng của bạn, sau đó nhấp vào Ứng dụng Firebase mà bạn muốn để tìm Mã ứng dụng của ứ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 tìm trong các vị trí đã chỉ định cho các tệp đầu vào này để đả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 (Hộp cát tập lệnh của người dùng), Xcode sẽ 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 của dự án cho phép Crashlytics xử lý các tệp dSYM.
Việc cung cấp vị trí của tệp GoogleService-Info.plist đã tạo của ứng dụng cho phép Crashlytics liên kết các dSYM với ứng dụng Firebase.
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 việc tải lên trùng lặp cùng một tệp 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. Dưới đâ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 settings > Cài đặt dự án.
Di chuyển xuống thẻ Ứng dụng của bạn, sau đó nhấp vào Ứng dụng Apple Firebase để xem thông tin về ứ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à GOOGLE_APP_ID.
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ờ --obfuscate nếu muốn), 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 có thể đọc đượ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 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 bạn bật tính năng làm rối mã nguồn.
Đảm bảo các dòng sau đây 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 bạn đang sử dụng CLI để tải biểu tượng 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à cờ --obfuscate nếu muốn), 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 có thể đọc đượ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 biểu tượng gỡ lỗi lên trước khi báo cáo sự cố từ một bản dựng mã đã làm rối mã nguồn.
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 Firebase cho Android (không phải tên gói)
Ví dụ về mã ứng dụng Firebase cho Android: 1:567383003300:android:17104a2ced0c9b9b
Bạn cần tìm Mã ứng dụng Firebase?
Dưới đây là hai cách để tìm Mã ứng dụng Firebase:
Trong tệp google-services.json, Mã ứng dụng 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.
Di chuyển xuống thẻ Ứng dụng của bạn, sau đó nhấp vào Ứng dụng Firebase mà bạn muốn để tìm Mã ứng dụng của ứng dụng đó.
PATH/TO/symbols: Thư mục giống như thư mục bạn truyền vào cờ --split-debug-info khi tạo ứng dụng