الحصول على تقارير أعطال قابلة للقراءة في لوحة بيانات Crashlytics (Flutter)

اختيار النظام الأساسي: iOS+ Android Flutter Unity


تفعّل Firebase Crashlytics تلقائيًا أدوات مشروع Flutter لتحميل ملفات الرموز اللازمة التي تضمن إزالة التشويش عن تقارير الأعطال وجعلها قابلة للقراءة.

في بعض الحالات، قد لا يتم إعداد المشروع بالكامل. يوضّح هذا الدليل ما تفعله عملية التشغيل الآلي ويقدّم الخطوات الأولى لتصحيح أخطاء إعداد مشروعك.

منصات Apple

التحقّق من إعدادات تحميل ملفات dSYM

ستحاول إضافة Crashlytics المكوّن الإضافي Flutter وتنفيذ الأمر flutterfire configure إضافة نص برمجي إلى مساحة عمل Xcode الخاصة بمشروعك، وهو نص برمجي يبحث عن ملفات رموز dSYM اللازمة ويحمّلها إلى Crashlytics. وبدون هذه الملفات، سيظهر لك تنبيه "ملف dSYM مفقود" في لوحة بيانات Crashlytics، وسيحتفظ الخلفية بالاستثناءات إلى أن يتم تحميل الملفات المفقودة.

إذا واجهت هذه المشكلة، تأكَّد أولاً من تثبيت البرنامج النصي للتشغيل:

  1. ابحث عن ملف مساحة عمل Xcode وافتحه في دليل iOS الخاص بمشروعك (FLUTTER_PROJECT_NAME/ios/Runner.xcworkspace).

  2. تحديد ما إذا تمت إضافة نص برمجي بعنوان [firebase_crashlytics] Crashlytics Upload Symbols إلى مراحل الإنشاء (Build Phases) الخاصة بهدف Runner.

    اطّلِع على القسم المناسب أدناه لمعرفة ما إذا كان النص البرمجي للتنفيذ غير موجود أو موجودًا.

تحقَّق من إعدادات الإصدار لكلّ من Flutter وCrashlytics (في حال استخدام العلامة --split-debug-info)

إذا كان مشروع Flutter يستخدم العلامة --split-debug-info (ويمكنك اختياريًا استخدام العلامة --obfuscate أيضًا)، يجب اتّخاذ خطوات إضافية لعرض تتبُّع تسلسل استدعاء الدوال البرمجية قابلة للقراءة في تطبيقك.

تأكَّد من أنّ مشروعك يستخدم إعدادات الإصدار المقترَحة (الإصدار 3.12.0 من Flutter والإصدار 3.3.4 من Crashlytics Flutter plugin والإصدارات الأحدث) حتى يتمكّن مشروعك من إنشاء رموز 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'

تأكَّد من استخدام واجهة سطر الأوامر لتحميل رموز Flutter (في حال استخدام العلامة --split-debug-info)

إذا كان مشروع Flutter يستخدم العلامة --split-debug-info (ويمكنك اختياريًا استخدام العلامة --obfuscate أيضًا)، يجب اتّخاذ خطوات إضافية لعرض تتبُّع تسلسل استدعاء الدوال البرمجية قابلة للقراءة في تطبيقك.

استخدِم Firebase CLI (الإصدار 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.