Bắt đầu với Firebase Crashlytics

Hướng dẫn bắt đầu nhanh này mô tả cách thiết lập Firebase Crashlytics trong ứng dụng của bạn bằng plugin Crashlytics Flutter để bạn có thể nhận báo cáo sự cố toàn diện trong bảng điều khiển Firebase.

Thiết lập Crashlytics liên quan đến việc sử dụng cả công cụ dòng lệnh và IDE của bạn. Để hoàn tất quá trình thiết lập, bạn cần phải đưa ra một ngoại lệ kiểm tra để gửi báo cáo sự cố đầu tiên tới Firebase.

Trước khi bắt đầu

  1. Nếu bạn chưa có, hãy định cấu hình và khởi tạo Firebase trong dự án Flutter của bạn.

  2. Khuyến nghị : Để tự động nhận nhật ký đường dẫn nhằm hiểu hành động của người dùng dẫn đến sự cố, sự kiện không gây tử vong hoặc ANR, bạn cần bật Google Analytics trong dự án Firebase của mình.

    • Nếu dự án Firebase hiện tại của bạn chưa bật Google Analytics, bạn có thể bật Google Analytics từ tab Tích hợp của > Cài đặt dự án trong bảng điều khiển Firebase.

    • Nếu bạn đang tạo dự án Firebase mới, hãy bật Google Analytics trong quy trình tạo dự án.

    Lưu ý rằng nhật ký đường dẫn có sẵn cho tất cả các nền tảng Android và Apple được Crashlytics hỗ trợ (ngoại trừ watchOS).

Bước 1 : Thêm Crashlytics vào dự án Flutter của bạn

  1. Từ thư mục gốc của dự án Flutter của bạn, hãy chạy lệnh sau để cài đặt plugin Flutter cho Crashlytics.

    Để tận dụng nhật ký breadcrumb , hãy thêm plugin Flutter dành cho Google Analytics vào ứng dụng của bạn. Đảm bảo rằng Google Analytics được bật trong dự án Firebase của bạn.

    flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
    
  2. Từ thư mục gốc của dự án Flutter của bạn, hãy chạy lệnh sau:

    flutterfire configure
    

    Việc chạy lệnh này đảm bảo rằng cấu hình Firebase của ứng dụng Flutter của bạn được cập nhật và đối với Android, sẽ thêm plugin Crashlytics Gradle cần thiết vào ứng dụng của bạn.

  3. Sau khi hoàn tất, hãy xây dựng lại dự án Flutter của bạn:

    flutter run
    
  4. (Tùy chọn) Nếu dự án Flutter của bạn sử dụng cờ --split-debug-info (và tùy chọn, cả cờ --obfuscate ), 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 bạn.

    • Nền tảng Apple: Đả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+ và plugin Crashlytics Flutter 3.3.4+) để dự án của bạn có thể tự động tạo và tải các biểu tượng Flutter (tệp dSYM) lên Crashlytics.

    • Android: Sử dụng Firebase CLI (v.11.9.0+) để tải lên các biểu tượng gỡ lỗi Flutter. 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ã bị xáo trộn.

      Từ thư mục gốc của dự án Flutter của bạn, hãy chạy lệnh sau:

      firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
      • FIREBASE_APP_ID : ID ứng dụng Android Firebase của bạn (không phải tên gói của bạn)
        Ví dụ ID ứng dụng Android Firebase: 1:567383003300:android:17104a2ced0c9b9b

      • PATH/TO /symbols : Cùng thư mục mà bạn chuyển tới cờ --split-debug-info khi xây dựng ứng dụng

Bước 2 : Cấu hình trình xử lý sự cố

Bạn có thể tự động phát hiện tất cả các lỗi phát sinh trong Flutter framework bằng cách ghi đè FlutterError.onError bằng FirebaseCrashlytics.instance.recordFlutterFatalError :

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  // Pass all uncaught "fatal" errors from the framework to Crashlytics
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}

Để phát hiện các lỗi không đồng bộ không được khung Flutter xử lý, hãy sử dụng PlatformDispatcher.instance.onError :

Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    FlutterError.onError = (errorDetails) {
      FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
    };
    // Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
    PlatformDispatcher.instance.onError = (error, stack) {
      FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
      return true;
    };
    runApp(MyApp());

}

Để biết ví dụ về cách xử lý các loại lỗi khác, hãy xem Tùy chỉnh báo cáo sự cố .

Bước 3 : Buộc chạy thử nghiệm để hoàn tất quá trình thiết lập

Để hoàn tất thiết lập Crashlytics và xem dữ liệu ban đầu trong bảng điều khiển Crashlytics của bảng điều khiển Firebase, bạn cần buộc đưa ra một ngoại lệ kiểm tra.

  1. Thêm mã vào ứng dụng mà bạn có thể sử dụng để buộc đưa ra ngoại lệ kiểm tra.

    Nếu bạn đã thêm trình xử lý lỗi gọi FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) vào Zone cấp cao nhất, thì bạn có thể sử dụng mã sau để thêm một nút vào ứng dụng của mình mà khi nhấn sẽ ném ra một ngoại lệ thử nghiệm:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. Xây dựng và chạy ứng dụng của bạn.

  3. Buộc loại bỏ ngoại lệ kiểm tra để gửi báo cáo đầu tiên cho ứng dụng của bạn:

    1. Mở ứng dụng của bạn từ thiết bị thử nghiệm hoặc trình mô phỏng.

    2. Trong ứng dụng của bạn, hãy nhấn nút ngoại lệ kiểm tra mà bạn đã thêm bằng mã ở trên.

  4. Đi tới trang tổng quan Crashlytics của bảng điều khiển Firebase để xem sự cố thử nghiệm của bạn.

    Nếu bạn đã làm mới bảng điều khiển và vẫn không thấy lỗi kiểm tra sau 5 phút, hãy bật tính năng ghi nhật ký gỡ lỗi để xem ứng dụng của bạn có gửi báo cáo lỗi hay không.


Và thế là xong! Crashlytics hiện đang theo dõi ứng dụng của bạn để tìm sự cố và trên Android, các lỗi không nghiêm trọng và ANR. Truy cập trang tổng quan Crashlytics để xem và điều tra tất cả các báo cáo và số liệu thống kê của bạn.

Bước tiếp theo