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