| Chọn nền tảng: | iOS+ Android Android NDK Flutter Unity |
Hướng dẫn này mô tả cách bắt đầu sử dụng Firebase Crashlytics trong ứng dụng Flutter.
Sau khi thiết lập trình bổ trợ Crashlytics Flutter trong ứng dụng, bạn có thể xem báo cáo toàn diện về sự cố trong bảng điều khiển Firebase.
Việc thiết lập Crashlytics bao gồm sử dụng cả công cụ dòng lệnh và IDE. Để hoàn tất quá trình thiết lập, bạn cần buộc một ngoại lệ kiểm thử được đưa ra để gửi báo cáo sự cố đầu tiên đến Firebase.
Trước khi bắt đầu
Nếu bạn chưa làm, hãy định cấu hình và khởi chạy Firebase trong dự án Flutter.
Nên làm: Để tự động nhận nhật ký đường dẫn để hiểu các hành động của người dùng dẫn đến sự cố, sự kiện không nghiêm trọng hoặc ANR, bạn cần bật Google Analytics trong dự á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.
Nếu bạn đang sử dụng một dự án Firebase hiện có chưa bật Google Analytics bạn có thể bật dự án đó trong trang
Settings > Integrations của bảng điều khiển Firebase.
Xin lưu ý rằng nhật ký đường dẫn có sẵn cho tất cả nền tảng Android và Apple mà Crashlytics hỗ trợ (ngoại trừ watchOS).
Bước 1: Thêm Crashlytics vào dự án Flutter
Từ gốc của dự án Flutter, hãy chạy lệnh sau để cài đặt trình bổ trợ Flutter cho Crashlytics.
Để tận dụng nhật ký đường dẫn, hãy thêm trình bổ trợ Flutter 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.
flutter pub add firebase_crashlytics && flutter pub add firebase_analyticsTừ thư mục gốc của dự án Flutter, hãy chạy lệnh sau:
flutterfire configureViệc chạy lệnh này đảm bảo rằng cấu hình Firebase của ứng dụng Flutter luôn được cập nhật và đối với Android, sẽ thêm trình bổ trợ Gradle bắt buộc vào ứng dụng của bạn.Crashlytics
Sau khi hoàn tất, hãy xây dựng lại dự án Flutter:
flutter run(Không bắt buộc) Nếu dự án Flutter của bạn sử dụng cờ
--split-debug-info(và tuỳ ý, 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 có thể đọc được cho ứng dụng của mình.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 trở lên và trình bổ trợ Flutter 3.3.4 trở lên) để dự án có thể tự động tạo và tải biểu tượng Flutter (tệp dSYM) lên Crashlytics.CrashlyticsCrashlytics
Android: 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ã 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 Firebase Android (không phải tên gói)
Ví dụ về mã ứng dụng Firebase Android:1:567383003300:android:17104a2ced0c9b9bPATH/TO/symbols: Cùng một thư mục mà bạn truyền đến cờ--split-debug-infokhi xây dựng ứng dụng
Bước 2: Định 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 được đưa ra trong khung Flutter 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ộ mà khung Flutter không 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());
}
Để xem ví dụ về cách xử lý các loại lỗi khác, hãy xem bài viết Tuỳ chỉnh báo cáo sự cố.
Bước 3: Buộc sự cố kiểm thử để hoàn tất quá trình thiết lập
Để hoàn tất việc thiết lập Crashlytics và xem dữ liệu ban đầu trên trang tổng quan Crashlytics trong bảng điều khiển của Firebase, bạn cần buộc một ngoại lệ kiểm thử được đưa ra.
Thêm mã vào ứng dụng mà bạn có thể dùng để buộc một ngoại lệ kiểm thử được đưa ra.
Nếu bạn đã thêm một trình xử lý lỗi gọi
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)vàoZonecấp cao nhất, bạn có thể sử dụng mã sau để thêm một nút vào ứng dụng. Khi nhấn nút này, một ngoại lệ kiểm thử sẽ được đưa ra:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),Xây dựng và chạy ứng dụng.
Buộc ngoại lệ kiểm thử được đưa ra để gửi báo cáo đầu tiên của ứng dụng:
Mở ứng dụng trên thiết bị thử nghiệm hoặc trình mô phỏng.
Trong ứng dụng, hãy nhấn vào nút ngoại lệ kiểm thử mà bạn đã thêm bằng mã ở trên.
Trong bảng điều khiển Firebase, hãy chuyển đến trang tổng quan DevOps & Engagement > Crashlytics để kiểm tra báo cáo sự cố kiểm thử .
Nếu bạn đã làm mới bảng điều khiển và vẫn không thấy sự cố kiểm thử 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 sự cố hay không.
Vậy là xong! Crashlytics hiện đang theo dõi các sự cố trong ứng dụng của bạn và trên Android, các lỗi không nghiêm trọng và ANR. Hãy truy cập vào trang tổng quan Crashlytics để xem và điều tra tất cả báo cáo và số liệu thống kê của bạn.
Các bước tiếp theo
Tuỳ chỉnh chế độ thiết lập báo cáo sự cố bằng cách thêm báo cáo chọn tham gia, nhật ký, khoá và theo dõi các lỗi không nghiêm trọng khác.
Tích hợp với Google Play để bạn có thể lọc báo cáo sự cố của ứng dụng Android theo kênh Google Playngay trong trang tổng quan Crashlytics. Điều này giúp bạn tập trung trang tổng quan vào các bản dựng cụ thể.
Xem dấu vết ngăn xếp và số liệu thống kê về sự cố cùng với mã của bạn bằng cửa sổ App Quality Insights (Thông tin chi tiết về chất lượng ứng dụng) trong Android Studio (có từ phiên bản Electric Eel 2022.1.1).
Xuất dữ liệu sang BigQuery hoặc Cloud Logging để phân tích và sử dụng các tính năng nâng cao, chẳng hạn như truy vấn dữ liệu, tạo trang tổng quan tuỳ chỉnh và thiết lập cảnh báo tuỳ chỉnh.