این شروع سریع نحوه راهاندازی Firebase Crashlytics را در برنامه خود با افزونه Crashlytics Flutter شرح میدهد تا بتوانید گزارشهای خرابی جامع را در کنسول Firebase دریافت کنید.
راه اندازی Crashlytics شامل استفاده از ابزار خط فرمان و IDE شما می شود. برای تکمیل راهاندازی، باید یک استثنای آزمایشی برای ارسال اولین گزارش خرابی خود به Firebase ایجاد کنید.
قبل از اینکه شروع کنی
اگر قبلاً این کار را نکرده اید، Firebase را در پروژه Flutter خود پیکربندی و مقداردهی اولیه کنید.
توصیه میشود: برای دریافت ویژگیهایی مانند کاربران بدون خرابی، گزارشهای خرده نان، و هشدارهای سرعت، باید Google Analytics را در پروژه Firebase خود فعال کنید.
همه پلتفرمهای اندروید و اپل که توسط Crashlytics پشتیبانی میشوند (به جز watchOS) میتوانند از این ویژگیهای Google Analytics استفاده کنند.
مطمئن شوید که Google Analytics در پروژه Firebase شما فعال است: به
> تنظیمات پروژه > تب ادغام ها بروید، سپس دستورالعمل های روی صفحه را برای Google Analytics دنبال کنید.
مرحله 1 : Crashlytics را به پروژه Flutter خود اضافه کنید
از ریشه پروژه Flutter خود، دستور زیر را برای نصب افزونه Crashlytics Flutter اجرا کنید:
flutter pub add firebase_crashlytics
از دایرکتوری ریشه پروژه Flutter خود، دستور زیر را اجرا کنید:
flutterfire configure
اجرای این دستور تضمین می کند که پیکربندی Firebase برنامه Flutter شما به روز است و برای اندروید، افزونه Crashlytics Gradle مورد نیاز را به برنامه شما اضافه می کند.
پس از تکمیل، پروژه Flutter خود را بازسازی کنید:
flutter run
(اختیاری) اگر پروژه Flutter شما از پرچم
--split-debug-info
(و به صورت اختیاری، پرچم--obfuscate
) استفاده می کند، باید از Firebase CLI (نسخه 11.9.0+) برای آپلود نمادهای Android استفاده کنید.از دایرکتوری ریشه پروژه Flutter خود، دستور زیر را اجرا کنید:
firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols
دایرکتوری
PATH/TO /symbols
همان دایرکتوری است که هنگام ساخت برنامه به پرچم--split-debug-info
ارسال می کنید.
مرحله 2 : کنترل کننده های خرابی را پیکربندی کنید
میتوانید بهطور خودکار تمام خطاهایی را که در چارچوب Flutter ایجاد میشوند، با لغو FlutterError.onError
با 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());
}
برای دریافت خطاهای ناهمزمان که توسط فریمورک Flutter کنترل نمی شوند، از 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());
}
برای مثالهایی از نحوه رسیدگی به انواع دیگر خطاها، به سفارشی کردن گزارشهای خرابی مراجعه کنید.
مرحله 3 : یک خرابی آزمایشی را مجبور کنید تا راهاندازی تمام شود
برای تکمیل راهاندازی Crashlytics و دیدن دادههای اولیه در داشبورد Crashlytics کنسول Firebase، باید یک استثنای آزمایشی ایجاد کنید.
کدی را به برنامه خود اضافه کنید که می توانید از آن برای ایجاد یک استثنای آزمایشی استفاده کنید.
اگر یک کنترل کننده خطا که
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
را فراخوانی می کند بهZone
سطح بالا اضافه کرده اید، می توانید از کد زیر برای افزودن دکمه ای به برنامه خود استفاده کنید که با فشار دادن، پرتاب می شود. استثنای آزمون:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
اپلیکیشن خود را بسازید و اجرا کنید.
برای ارسال اولین گزارش برنامه خود، استثنای آزمایشی را اجباری کنید:
برنامه خود را از دستگاه آزمایشی یا شبیه ساز خود باز کنید.
در برنامه خود، دکمه استثنای تست را که با استفاده از کد بالا اضافه کردید، فشار دهید.
برای مشاهده خرابی آزمایشی خود، به داشبورد Crashlytics کنسول Firebase بروید.
اگر کنسول را بهروزرسانی کردهاید و بعد از پنج دقیقه هنوز خرابی آزمایشی را نمیبینید، ثبت اشکالزدایی را فعال کنید تا ببینید آیا برنامه شما گزارشهای خرابی را ارسال میکند یا خیر.
و بس! Crashlytics اکنون برنامه شما را از نظر خرابی و در Android، خطاهای غیر کشنده و ANR زیر نظر دارد. از داشبورد Crashlytics دیدن کنید تا همه گزارش ها و آمار خود را مشاهده و بررسی کنید.
مراحل بعدی
با Google Play یکپارچه شوید تا بتوانید گزارشهای خرابی برنامه Android خود را با استفاده از مسیر Google Play مستقیماً در داشبورد Crashlytics فیلتر کنید. این به شما امکان می دهد داشبورد خود را بهتر بر روی ساخت های خاص متمرکز کنید.
با پنجره App Quality Insights در اندروید استودیو (از Electric Eel 2022.1.1 موجود است) ردیابی پشته و آمار خرابی را در کنار کد خود مشاهده کنید .