توضِّح طريقة البدء السريع هذه كيفية إعداد "Firebase Crashlytics" في تطبيقك. باستخدام المكوّن الإضافي Crashlytics في Flutter لتتمكن من تلقّي أعطال شاملة في وحدة التحكم Firebase.
يتضمّن إعداد Crashlytics استخدام أداة سطر أوامر وبيئة تطوير متكاملة (IDE). لإنهاء الإعداد، يجب فرض استثناء اختباري لإرسال أول تقرير أعطال إلى Firebase.
قبل البدء
إذا لم تكن قد فعلت ذلك بالفعل، ضبط Firebase وإعداده في Flutter مشروعك.
موصى به: للحصول تلقائيًا على سجلّات شريط التنقّل لفهم إجراءات المستخدم التي تؤدي إلى أعطال أو أحداث غير فادحة أو أخطاء ANR، عليك تفعيل Google Analytics في مشروعك على Firebase.
إذا لم يكن مشروعك الحالي في Firebase يحتوي على Google Analytics مُفعَّل، يمكنك تفعيل "Google Analytics" من في علامة التبويب عمليات الدمج على
في وحدة التحكم إعدادات المشروعFirebase. إذا كنت بصدد إنشاء مشروع جديد على Firebase، فعِّل "Google Analytics". أثناء سير عمل إنشاء المشروع.
يُرجى العلم أنّ سجلّات شريط التنقّل متوفّرة لجميع أنظمة Android وApple الأساسية. متوافق مع Crashlytics (باستثناء نظام التشغيل WatchOS).
الخطوة 1: إضافة Crashlytics إلى مشروع Flutter
من جذر مشروع Flutter، نفِّذ الأمر التالي لتثبيت. مكوّن Flutter الإضافي في Crashlytics
للاستفادة من سجلات شريط التنقل يمكنك أيضًا إضافة مكوّن Flutter الإضافي الخاص بـ Google Analytics إلى تطبيقك. تأكَّد من تم تفعيل "إحصاءات Google" في مشروع Firebase.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
من الدليل الجذري لمشروع Flutter، شغِّل الأمر التالي:
flutterfire configure
يضمن تشغيل هذا الأمر ضبط إعدادات Firebase لتطبيق Flutter محدّثًا، كما تضيف Crashlytics أداة Gradle المطلوبة لنظام التشغيل Android المكون الإضافي إلى تطبيقك.
بعد اكتمال عملية الإنشاء، أعِد إنشاء مشروع Flutter:
flutter run
(اختياري) في حال كان مشروعك على Flutter يستخدِم علامة
--split-debug-info
(وعلميًا أيضًا، علامة--obfuscate
)، تتوفر خطوات إضافية المطلوب لعرض عمليات تتبُّع تسلسل استدعاء الدوال البرمجية القابلة للقراءة لتطبيقاتك.أنظمة Apple الأساسية: تأكد من أن مشروعك يستخدم ضبط الإصدار (Flutter 3.12.0 أو الإصدارات الأحدث Crashlytics المكوّن الإضافي Flutter 3.3.4 أو الإصدارات الأحدث) لكي يتمكّن مشروعك من يمكن تلقائيًا إنشاء رموز Flutter (ملفات dSYM) وتحميلها Crashlytics
على أجهزة Android: استخدِم Firebase واجهة سطر الأوامر (الإصدار 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
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. يتيح لك ذلك التركيز بشكل أفضل لوحة المعلومات على إصدارات محددة.
عرض عمليات تتبُّع تسلسل استدعاء الدوال البرمجية وإحصاءات الأعطال بجانب الرمز مع نافذة إحصاءات جودة التطبيق في "استوديو Android" (ستتوفّر بدءًا من مع Electric Eel 2022.1.1).