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 huỷ làm rối mã nguồn và dễ đọ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 quá trình thiết lập dự án.

Nền tảng Apple

Kiểm tra cấu hình của bạn để tải tệp dSYM lên

Việc thêm trình bổ trợ Crashlytics Flutter 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ập lệnh này sẽ 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à phần phụ trợ sẽ giữ lại các ngoại lệ 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 một 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 thích hợp bên dưới để biết tập lệnh chạy có _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à tuỳ ý sử dụng cả cờ --obfuscate), 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 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à Crashlytics trình bổ trợ 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à 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 CLI để tải các 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à tuỳ ý sử dụng cả cờ --obfuscate), 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 của mình.

Sử dụng Firebase CLI (phiên bản 11.9.0 trở lên) để tải các 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ừ bản dựng mã bị 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 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 chuyển đến cờ --split-debug-info khi xây dựng ứ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ố báo cáo bị làm rối mã nguồn.