Nhận báo cáo sự cố dễ đọc trong trang tổng quan Crashlytics (Flutter)

Chọn nền tảng: iOS+ Android Flutter Unity


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:

  1. 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).

  2. 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.

    Hãy xem phần áp dụng bên dưới để biết tập lệnh chạy không tồn tại hay tập lệnh chạy tồn tại.

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:

    dependencies {
    // ... other dependencies
    
    classpath 'com.google.gms:google-services:4.3.5'
    classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
    }
  • 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 imports
    
    android {
    // ... your android config
    }
    
    dependencies {
    // ... your dependencies
    }
    
    // This section must appear at the bottom of the file
    apply plugin: 'com.google.gms.google-services'
    apply plugin: '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 crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • 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

  • 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

Nếu vấn đề vẫn tiếp diễn, hãy tham khảo hướng dẫn dành riêng cho Android để khắc phục sự cố về báo cáo bị làm rối mã nguồn.