توضّح هذه البداية السريعة كيفية إعداد Firebase Crashlytics في تطبيقك. باستخدام المكوّن الإضافي Crashlytics Flutter لتتمكن من حالات التعطُّل في وحدة تحكُّم Firebase.
يتضمّن إعداد Crashlytics استخدام أداة سطر الأوامر وبيئة التطوير المتكاملة (IDE). لإنهاء الإعداد، يجب فرض استثناء اختباري لإرسال أول تقرير أعطال إلى Firebase.
قبل البدء
إذا لم تكن قد فعلت ذلك بالفعل، ضبط Firebase وإعداده في Flutter مشروعك.
موصى به: للحصول تلقائيًا على سجلّات شريط التنقّل لفهم إجراءات المستخدم التي تؤدي إلى أعطال أو أحداث غير فادحة أو أخطاء ANR، عليك تفعيل "إحصاءات Google" في مشروعك على Firebase.
في حال لم تكن خدمة "إحصاءات Google" متوفرة في مشروعك الحالي على Firebase. بشكل عام، يمكنك تفعيل "إحصاءات Google" علامة التبويب عمليات الدمج في
في وحدة تحكُّم Firebase. > إعدادات المشروع إذا كنت بصدد إنشاء مشروع جديد على Firebase، فعِّل "إحصاءات Google". أثناء سير عمل إنشاء المشروع.
يُرجى العلم أنّ سجلّات شريط التنقّل متوفّرة لجميع أنظمة Android وApple الأساسية. متوافقة مع Crashlytics (باستثناء نظام التشغيل watchOS)
الخطوة 1: إضافة Crashlytics إلى مشروع Flutter
من جذر مشروع Flutter، نفِّذ الأمر التالي لتثبيت. المكوّن الإضافي Flutter لتطبيق Crashlytics.
للاستفادة من سجلات شريط التنقل يمكنك أيضًا إضافة مكوّن Flutter الإضافي لخدمة "إحصاءات Google" إلى تطبيقك تأكَّد من تم تفعيل "إحصاءات Google" في مشروع Firebase.
flutter pub add firebase_crashlytics && flutter pub add firebase_analytics
من الدليل الجذري لمشروع Flutter، شغِّل الأمر التالي:
flutterfire configure
يضمن تشغيل هذا الأمر ضبط إعدادات Firebase لتطبيق Flutter محدّثًا، كما تضيف أداة Grashlytics 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).