این شروع سریع نحوه راهاندازی Firebase Crashlytics را در برنامه خود با افزونه Crashlytics Flutter شرح میدهد تا بتوانید گزارشهای خرابی جامع را در کنسول Firebase دریافت کنید.
راه اندازی Crashlytics شامل استفاده از ابزار خط فرمان و IDE شما می شود. برای تکمیل راهاندازی، باید یک استثنای آزمایشی برای ارسال اولین گزارش خرابی خود به Firebase ایجاد کنید.
قبل از شروع
اگر قبلاً این کار را نکرده اید، Firebase را در پروژه Flutter خود پیکربندی و مقداردهی اولیه کنید .
توصیه میشود : برای دریافت خودکار گزارشهای خرده نان برای درک اقدامات کاربر که منجر به خرابی، رویداد غیرمرگبار یا ANR میشود، باید Google Analytics در پروژه Firebase خود فعال کنید.
اگر پروژه Firebase موجود شما Google Analytics فعال نکرده است، می توانید Google Analytics از برگه Integrations فعال کنید.
Firebase . > تنظیمات پروژه در کنسولاگر در حال ایجاد یک پروژه Firebase هستید، Google Analytics در جریان کار ایجاد پروژه فعال کنید.
توجه داشته باشید که گزارشهای سوخاری برای همه پلتفرمهای اندروید و اپل که توسط Crashlytics پشتیبانی میشوند (به جز watchOS) در دسترس هستند.
مرحله 1 : Crashlytics به پروژه Flutter خود اضافه کنید
از ریشه پروژه Flutter خود، دستور زیر را برای نصب افزونه Flutter برای Crashlytics اجرا کنید.
برای بهره مندی از لاگ های خرده نان ، افزونه Flutter برای Google Analytics را نیز به برنامه خود اضافه کنید. مطمئن شوید که Google Analytics در پروژه Firebase شما فعال است .
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
از دایرکتوری ریشه پروژه Flutter خود، دستور زیر را اجرا کنید:
flutterfire configure
اجرای این دستور تضمین می کند که پیکربندی Firebase برنامه Flutter شما به روز است و برای اندروید، افزونه Crashlytics Gradle مورد نیاز را به برنامه شما اضافه می کند.
پس از تکمیل، پروژه Flutter خود را بازسازی کنید:
flutter run
(اختیاری) اگر پروژه Flutter شما از پرچم
--split-debug-info
(و به صورت اختیاری، همچنین پرچم--obfuscate
) استفاده می کند، مراحل بیشتری برای نمایش ردپای پشته قابل خواندن برای برنامه های شما لازم است.پلتفرمهای اپل: مطمئن شوید که پروژه شما از پیکربندی نسخه توصیهشده (Flutter 3.12.0+ و Crashlytics Flutter 3.3.4+) استفاده میکند تا پروژه شما بتواند به طور خودکار نمادهای Flutter (فایلهای dSYM) را در Crashlytics تولید و آپلود کند.
Android: از Firebase CLI (نسخه 11.9.0+) برای آپلود نمادهای اشکال زدایی Flutter استفاده کنید. قبل از گزارش خرابی از یک ساخت کد مبهم، باید نمادهای اشکال زدایی را آپلود کنید.
از دایرکتوری ریشه پروژه Flutter خود، دستور زیر را اجرا کنید:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID : شناسه برنامه Android Firebase شما (نه نام بسته شما)
ID برنامه اندروید Firebase مثال:1:567383003300:android:17104a2ced0c9b9b
در اینجا دو روش برای یافتن شناسه برنامه Firebase وجود دارد:
در فایل
google-services.json
، شناسه برنامه شما مقدارmobilesdk_app_id
است. یادر کنسول Firebase ، به تنظیمات پروژه خود بروید. به سمت پایین به کارت برنامه های شما بروید، سپس روی برنامه Firebase مورد نظر کلیک کنید تا شناسه برنامه آن را پیدا کنید.
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 موجود است) ردیابی پشته و آمار خرابی را در کنار کد خود مشاهده کنید .
این QuickStart نحوه تنظیم Firebase Crashlytics را در برنامه خود با افزونه Crashlytics Flutter توضیح می دهد تا بتوانید گزارش های جامع سقوط را در کنسول Firebase دریافت کنید.
تنظیم Crashlytics شامل استفاده از ابزار خط فرمان و IDE شما است. برای به پایان رساندن راه اندازی ، برای ارسال اولین گزارش تصادف خود به Firebase ، باید یک استثناء تست را مجبور کنید.
قبل از شروع
اگر قبلاً این کار را نکرده اید ، Firebase را در پروژه Flutter خود پیکربندی و اولیه کنید .
توصیه می شود : برای به دست آوردن خودکار سیاهههای مربوط به سوفرهای نان برای درک اقدامات کاربر منتهی به یک رویداد تصادف ، غیر کشنده یا ANR ، باید Google Analytics در پروژه Firebase خود فعال کنید.
اگر پروژه Firebase موجود شما Google Analytics فعال نکرده است ، می توانید Google Analytics از برگه ادغام خود فعال کنید
Firebase . > تنظیمات پروژه در کنسولاگر در حال ایجاد یک پروژه Firebase هستید، Google Analytics در جریان کار ایجاد پروژه فعال کنید.
توجه داشته باشید که سیاهههای مربوط به نان های آندروید و اپل که توسط Crashlytics (به جز WatchOS) پشتیبانی می شوند ، در دسترس است.
مرحله 1 : Crashlytics به پروژه Flutter خود اضافه کنید
از ریشه پروژه Flutter خود ، دستور زیر را اجرا کنید تا افزونه Flutter را برای Crashlytics نصب کنید.
برای بهره مندی از سیاهههای مربوط به خرده نان ، همچنین افزونه Flutter را برای Google Analytics به برنامه خود اضافه کنید. اطمینان حاصل کنید که Google Analytics در پروژه Firebase شما فعال شده است .
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
از فهرست اصلی پروژه Flutter خود ، دستور زیر را اجرا کنید:
flutterfire configure
اجرای این دستور تضمین می کند که پیکربندی Firebase برنامه Flutter شما به روز است و برای Android ، افزونه Gradle Crashlytics مورد نیاز را به برنامه شما اضافه می کند.
پس از اتمام ، پروژه Flutter خود را بازسازی کنید:
flutter run
(اختیاری) اگر پروژه Flutter شما از پرچم-
--split-debug-info
(و ، به صورت اختیاری ، همچنین پرچم---obfuscate
) استفاده می کند ، مراحل اضافی برای نمایش آثار قابل خواندن برای برنامه های شما لازم است.سیستم عامل های اپل: اطمینان حاصل کنید که پروژه شما از پیکربندی نسخه توصیه شده (Flutter 3.12.0+ و Crashlytics Flutter 3.3.4+) استفاده می کند تا پروژه شما بتواند به طور خودکار نمادهای فلاتر (پرونده های DSYM) را برای Crashlytics تولید و بارگذاری کند.
Android: از Firebase CLI (v.11.9.0+) برای بارگذاری نمادهای اشکال زدایی Flutter استفاده کنید. قبل از گزارش تصادف از ساخت کد مبهم ، باید نمادهای اشکال زدایی را بارگذاری کنید.
از فهرست اصلی پروژه Flutter خود ، دستور زیر را اجرا کنید:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/symbols
FIREBASE_APP_ID : شناسه برنامه Android Firebase شما (نام بسته شما نیست)
مثال شناسه برنامه Android Firebase:1:567383003300:android:17104a2ced0c9b9b
در اینجا دو روش برای یافتن شناسه برنامه Firebase خود وجود دارد:
در پرونده
google-services.json
خود ، شناسه برنامه شما مقدارmobilesdk_app_id
است. یادر کنسول Firebase به تنظیمات پروژه خود بروید. به کارت برنامه های خود بروید ، سپس بر روی برنامه مورد نظر Firebase کلیک کنید تا شناسه برنامه آن را پیدا کنید.
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());
}
برای نمونه هایی از نحوه رسیدگی به انواع دیگر خطاها ، گزارش های Customize Crash را ببینید.
مرحله 3 : یک تصادف تست را برای پایان دادن به تنظیمات مجبور کنید
برای به پایان رساندن تنظیم Crashlytics و دیدن داده های اولیه در داشبورد Crashlytics کنسول Firebase ، باید یک استثناء آزمایش را مجبور کنید تا پرتاب شود.
کدی را به برنامه خود اضافه کنید که می توانید از آن برای ایجاد یک استثنای آزمایشی استفاده کنید.
اگر یک کنترل کننده خطا را که
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true)
را فراخوانی میکند بهZone
سطح بالا اضافه کردهاید، میتوانید از کد زیر برای افزودن دکمهای به برنامه خود استفاده کنید که با فشار دادن، یک استثنای آزمایشی ایجاد میکند:TextButton( onPressed: () => throw Exception(), child: const Text("Throw Test Exception"), ),
اپلیکیشن خود را بسازید و اجرا کنید.
برای ارسال اولین گزارش برنامه خود، استثنای آزمایشی را اجباری کنید:
برنامه خود را از دستگاه آزمایشی یا شبیه ساز خود باز کنید.
در برنامه خود، دکمه استثنای تست را که با استفاده از کد بالا اضافه کردید، فشار دهید.
برای مشاهده خرابی آزمایشی خود، به داشبورد Crashlytics کنسول Firebase بروید.
اگر کنسول را تازه کرده اید و هنوز شاهد سقوط تست بعد از پنج دقیقه نیستید ، ورود به سیستم اشکال زدایی را فعال کنید تا ببینید برنامه شما در حال ارسال گزارش های Crash است یا خیر.
و بس! Crashlytics اکنون برنامه شما را برای خرابی ها و در مورد خطاهای Android ، غیر کشنده و ANR نظارت می کند. برای مشاهده و بررسی تمام گزارش ها و آمار خود به داشبورد Crashlytics مراجعه کنید.
مراحل بعدی
با Google Play ادغام شوید تا بتوانید گزارش های خرابی برنامه Android خود را توسط Google Play Track مستقیماً در داشبورد Crashlytics فیلتر کنید. این به شما امکان می دهد داشبورد خود را بهتر روی ساختهای خاص متمرکز کنید.
مشاهده آثار پشته و آمار تصادف در کنار کد خود با پنجره App Wality Insights در Android Studio (موجود با ELECT ELEL 2022.1.1 موجود است).