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
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.
Khuyến nghị : Để nhận được các tính năng như người dùng không gặp sự cố, nhật ký đường dẫn và cảnh báo vận tốc, bạn cần bật Google Analytics trong dự án Firebase của mình.
Tất cả các nền tảng Android và Apple được Crashlytics hỗ trợ (ngoại trừ watchOS) đều có thể tận dụng các tính năng này từ Google Analytics.
Đảm bảo rằng Google Analytics được bật trong dự án Firebase của bạn: Truy cập
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 của bạn, hãy chạy lệnh sau để cài đặt plugin Crashlytics Flutter:
flutter pub add firebase_crashlytics
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.
Sau khi hoàn tất, hãy xây dựng lại dự án Flutter của bạn:
flutter run
(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
Dưới đây là hai cách để tìm ID ứng dụng Firebase của bạn:
Trong tệp
google-services.json
, ID ứng dụng của bạn là giá trịmobilesdk_app_id
; hoặcTrong bảng điều khiển Firebase, hãy đi tới cài đặt Dự án của bạn. Cuộn xuống thẻ Ứng dụng của bạn , sau đó nhấp vào Ứng dụng Firebase mong muốn để tìm ID ứng dụng của nó.
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.
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àoZone
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"), ),
Xây dựng và chạy ứng dụng của bạn.
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:
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 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.
Đ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
Tùy chỉnh thiết lập báo cáo sự cố của bạn bằng cách thêm báo cáo chọn tham gia, nhật ký, khóa và theo dõi các lỗi không nghiêm trọng bổ sung.
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 bản nhạc Google Play trực tiếp trong trang tổng quan Crashlytics. Điều này cho phép bạn tập trung tốt hơn vào bảng điều khiển của mình trên các bản dựng cụ thể.
Xem dấu vết ngăn xếp và số liệu thống kê sự cố cùng với mã của bạn bằng cửa sổ Thông tin chi tiết về chất lượng ứng dụng trong Android Studio (có sẵn kể từ Electric Eel 2022.1.1).