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


بشكلٍ تلقائي، تُعدّل أداة 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 إلى مراحل إنشاء هدف Runner.

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

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

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

تأكَّد من أنّ مشروعك يستخدم إعدادات الإصدار المقترَحة (Flutter 3.12.0 والإصدارات الأحدث وCrashlytics Flutter plugin 3.3.4 والإصدارات الأحدث) لكي تتمكّن من إنشاء رموز Flutter (ملفات dSYM) وتحميلها تلقائيًا إلى Crashlytics.

Android

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

يحاول الأمر flutterfire configure إضافة التبعيات اللازمة إلى ملفات إنشاء Gradle الخاصة بمشروعك. في حال عدم توفّر هذه التبعيات، قد يتم تشويش تقارير الأعطال فيconsole 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 اختياريًا)، يجب اتّخاذ خطوات إضافية لعرض مسار تتبع --split-debug-infoمقروء لتطبيقك.

استخدِم 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

  • PATH/TO/symbols: الدليل نفسه الذي يتم إرساله إلى العلامة --split-debug-info عند إنشاء التطبيق

إذا استمرت المشاكل، يُرجى الرجوع إلى الدليل المخصّص لنظام التشغيل Android لتحديد المشاكل وحلّها في التقارير المشوشة.