Hướng dẫn bắt đầu nhanh này mô tả cách thiết lập Firebase Crashlytics trong ứng dụng bằng trình bổ trợ Crashlytics Flutter để bạn có thể nhận được báo cáo sự cố toàn diện trong bảng điều khiển của Firebase.
Để thiết lập Crashlytics, bạn cần 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 gửi một ngoại lệ kiểm thử để gửi báo cáo sự cố đầu tiên cho Firebase.
Trước khi bắt đầu
Định cấu hình và khởi chạy Firebase trong dự án Flutter của bạn (nếu bạn chưa thực hiện việc này).
Đề xuất: Để tự động lấy nhật ký breadcrumb để hiểu những 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 sự kiện 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ừ thẻ Tích hợp của
trong bảng điều khiển của Firebase. > Cài đặt dự án Nếu bạn đang tạo một dự án Firebase mới, hãy bật Google Analytics trong quy trình tạo dự án.
Xin lưu ý rằng nhật ký breadcrumb (tập hợp liên kết phân cấp) có sẵn trên tất cả cá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 của bạn
Từ thư mục 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 cả trình bổ trợ Flutter cho Google Analytics vào ứng dụng của bạn. Hãy nhớ bật Google Analytics trong dự án Firebase của bạn.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
Trong thư mục gốc của dự án Flutter, 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 cập nhật và đối với Android, sẽ thêm trình bổ trợ Crashlytics Gradle cần thiết vào ứng dụng của bạn.
Sau khi hoàn tất, hãy tạo lại dự án Flutter của bạn:
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à cả cờ--obfuscate
nữa thì không bắt buộc), thì bạn cần thực hiện thêm một số bước để hiển thị dấu vết ngăn xếp có thể đọc được cho ứng dụng.Các nền tảng của Apple: Đảm bảo rằng dự án của bạn đang sử dụng cấu hình phiên bản mà chúng tôi đề xuất (Flutter 3.12.0 trở lên và trình bổ trợ Crashlytics Flutter 3.3.4 trở lên) để 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 (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ừ một bản dựng mã bị làm rối mã nguồn.
Trong 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 trên Firebase (không phải tên gói)
Mã ứng dụng Android trên Firebase mẫu:1:567383003300:android:17104a2ced0c9b9b
PATH/TO/symbols
: Chính thư mục mà bạn truyền đến cờ--split-debug-info
khi tạo ứ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 tạo 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());
}
Để biết 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: Xác định sự cố thử nghiệm để 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 gửi một ngoại lệ kiểm thử.
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 thử.
Nếu đã thêm một trình xử lý lỗi để gọi
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
vàoZone
cấ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 được nhấn vào, nút này sẽ gửi ra một ngoại lệ kiểm thử:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
Tạo bản dựng và chạy ứng dụng của bạn.
Buộc gửi ngoại lệ kiểm thử để gửi báo cáo đầu tiên của ứng dụng:
Mở ứng dụng của bạn từ thiết bị thử nghiệm hoặc trình mô phỏng.
Trong ứng dụng, hãy nhấn nút kiểm thử ngoại lệ mà bạn đã thêm bằng mã ở trên.
Hãy truy cập vào trang tổng quan Crashlytics trong bảng điều khiển của 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 mà 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ó đang gửi báo cáo sự cố hay không.
Vậy là xong! Crashlytics hiện đang theo dõi ứng dụng của bạn để phát hiện các sự cố và trên Android, các lỗi không nghiêm trọng và lỗi ANR. Hãy truy cập vào
trang tổng quan Crashlytics để xem và tìm hiểu tất cả cá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 tính năng 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 dõi trên Google Play ngay trong trang tổng quan Crashlytics. Nhờ đó, bạn có thể tập trung tốt hơn vào trang tổng quan của mình 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ã 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 (kể từ Electric Eel 2022.1.1).