| اختيار المنصة: | +iOS Android الويب Flutter Unity |
تلقائيًا، تعمل أداة Firebase Crashlytics على تجهيز مشروع Flutter لتحميل ملفات الرموز اللازمة التي تضمن إزالة الغموض عن تقارير الأعطال وإتاحتها للقراءة البشرية.
ومع ذلك، هناك حالات قد تؤدي إلى عدم ضبط المشروع بالكامل. يوضّح هذا الدليل وظيفة عملية التشغيل الآلي ويقدّم الخطوات الأولى لتصحيح أخطاء إعداد مشروعك.
منصات Apple
التحقّق من إعدادات تحميل ملفات dSYM
ستؤدي إضافة المكوّن الإضافي Crashlytics Flutter وتشغيل الأمر
flutterfire configure إلى محاولة إضافة نص برمجي للتشغيل إلى مساحة عمل Xcode الخاصة بمشروعك
والتي تعثر على ملفات رموز dSYM اللازمة وتحمّلها
إلى Crashlytics. بدون هذه الملفات، سيظهر لك تنبيه "ملف dSYM غير متوفّر" في
لوحة بيانات Crashlytics وسيتم الاحتفاظ بالاستثناءات في الخلفية
إلى أن يتم تحميل الملفات غير المتوفّرة.
إذا واجهت هذه المشكلة، تأكَّد أولاً من تثبيت نص التشغيل البرمجي:
ابحث عن ملف مساحة عمل Xcode وافتحه في دليل iOS الخاص بمشروعك (
FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).تحديد ما إذا تمت إضافة نص برمجي للتشغيل بعنوان
[firebase_crashlytics] Crashlytics Upload Symbolsإلى مراحل إنشاء هدف Runner.اطّلِع على القسم المناسب أدناه لمعرفة ما إذا كان النص البرمجي للتشغيل غير متوفّر أو متوفّرًا.
التحقّق من إعدادات إصدار Flutter وCrashlytics (في حال استخدام العلامة --split-debug-info)
إذا كان مشروع Flutter يستخدم العلامة --split-debug-info (ويمكن أيضًا استخدام العلامة --obfuscate)، يجب اتّباع خطوات إضافية لعرض تتبُّعات تسلسل استدعاء الدوال البرمجية القابلة للقراءة في تطبيقك.
تأكَّد من أنّ مشروعك يستخدم إعدادات الإصدار المقترَحة (الإصدار 3.12.0 من Flutter أو الإصدارات الأحدث والمكوّن الإضافي Crashlytics من Flutter بالإصدار 3.3.4 أو الإصدارات الأحدث) لكي يتمكّن مشروعك من إنشاء رموز Flutter (ملفات dSYM) وتحميلها تلقائيًا إلى Crashlytics.
Android
التحقّق من إعدادات التبعية
يحاول الأمر flutterfire configure إضافة الاعتماديات اللازمة إلى ملفات إصدار Gradle في مشروعك. بدون هذه التبعيات، قد يتم حجب تقارير الأعطال في وحدة تحكّم Firebase إذا تم تفعيل ميزة الحجب.
تأكَّد من توفّر الأسطر التالية في ملف build.gradle على مستوى المشروع
وفي ملف build.gradle على مستوى التطبيق:
في ملف التصميم على مستوى المشروع (
android/build.gradle)، ابحث عن السطر التالي:dependencies { // ... other dependencies classpath 'com.google.gms:google-services:4.3.5' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1' }في ملف الإصدار على مستوى التطبيق (
android/app/build.gradle)، ابحث عن السطر التالي:// ... other imports android { // ... your android config } dependencies { // ... your dependencies } // This section must appear at the bottom of the file apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics'
تأكَّد من استخدام واجهة سطر الأوامر (CLI) لتحميل رموز Flutter (في حال استخدام العلامة --split-debug-info)
إذا كان مشروع Flutter يستخدم العلامة --split-debug-info (ويمكن أيضًا استخدام العلامة --obfuscate)، يجب اتّباع خطوات إضافية لعرض تتبُّعات تسلسل استدعاء الدوال البرمجية القابلة للقراءة في تطبيقك.
استخدِم واجهة سطر الأوامر (CLI) في 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عند إنشاء التطبيق
إذا استمرّت المشاكل، يُرجى الرجوع إلى الدليل الخاص بنظام التشغيل Android لتحديد المشاكل وحلّها في التقارير المبهمة.