يصف هذا Quickstart كيفية إعداد Firebase Crashlytics في تطبيقك باستخدام المكون الإضافي Crashlytics Flutter بحيث يمكنك الحصول على تقارير أعطال شاملة في وحدة تحكم Firebase.
يتضمن إعداد Crashlytics استخدام كل من أداة سطر الأوامر و IDE الخاص بك. لإنهاء الإعداد ، ستحتاج إلى فرض استثناء اختباري ليتم طرحه لإرسال تقرير التعطل الأول إلى Firebase.
قبل ان تبدأ
إذا لم تكن قد قمت بذلك بالفعل ، فقم بتهيئة وتهيئة Firebase في مشروع Flutter الخاص بك.
موصى به : للحصول على ميزات مثل المستخدمين الذين لم يتعرضوا للأعطال وسجلات التنقل وتنبيهات السرعة ، تحتاج إلى تمكين Google Analytics في مشروع Firebase.
يمكن لجميع منصات Android و Apple التي تدعمها 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 محدثًا ، وبالنسبة لنظام Android ، يضيف المكون الإضافي 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 في Android Studio (متاح بدءًا من Electric Eel 2022.1.1).