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:

  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 Các giai đoạn xây dựng của mục tiêu Runner hay chưa.

    Hãy xem phần hiện hành bên dưới để biết liệu 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 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:

    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 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 crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
  • 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

  • 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

Nếu vẫn gặp vấ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.