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

اختيار المنصة: +iOS Android Flutter Unity


وفقًا للإعدادات التلقائية، يعالج Firebase Crashlytics ملفات رموز تصحيح الأخطاء (dSYM) تلقائيًا لتقديم تقارير أعطال يمكن لشخص عادي قراءتها وتمت إزالة التشويش منها. يمكنك عادةً ضبط هذا السلوك أثناء الإعداد الأولي لخدمة Crashlytics في تطبيقك، وتحديدًا من خلال إضافة نص برمجي للتشغيل يحمّل ملفات dSYM تلقائيًا أثناء مرحلة إنشاء تطبيقك.

هناك بعض الحالات التي قد تؤدي إلى تعذُّر تحميل ملفات dSYM تلقائيًا. يقدّم هذا الدليل بعض الطرق لتحديد المشاكل وحلّها عندما يتعذّر على "Crashlytics" تحديد موقع ملفات dSYM الخاصة بتطبيقك.

تأكَّد من أنّ Xcode يمكنه معالجة ملفات dSYM وتحميلها تلقائيًا

عند إعداد Crashlytics في تطبيقك، ضبطت نصًا برمجيًا للتشغيل لمعالجة ملفات dSYM وتحميلها تلقائيًا.

يُرجى التأكّد من أنّ إعدادات النص البرمجي لتشغيل Crashlytics محدَّثة وفقًا للمتطلبات الجديدة التي بدأت مع الإصدار 15 من Xcode. إذا لم تكن إعداداتك محدّثة، قد يظهر لك الخطأ التالي:
error: Info.plist Error Unable to process Info.plist at path ....

على وجه التحديد، يتطلّب الإصدار 15 من Xcode والإصدارات الأحدث تقديم مجموعة أكثر اكتمالاً من المواقع الجغرافية للملفات. بالنسبة إلى النص البرمجي لتشغيل Crashlytics (firebase-ios-sdk/Crashlytics/run)، تأكَّد من ضبط الإعدادات التالية:

  1. انقر على علامة التبويب مراحل الإنشاء (Build Phases)، ثم وسِّع قسم تشغيل النص البرمجي (Run Script).

  2. في قسم ملفات الإدخال، تأكَّد من توفّر مسارات المواقع الجغرافية للملفات التالية:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
    إذا كان لديك ENABLE_USER_SCRIPT_SANDBOXING=YES وENABLE_DEBUG_DYLIB=YES في إعدادات إصدار مشروعك، يُرجى تضمين ما يلي:
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

التحقّق مما إذا كان Xcode يُنشئ ملفات dSYM

في كثير من الأحيان، يتم فقدان ملفات dSYM لأنّ Xcode لا ينشئها. عند تعذُّر التحميل، يعرض Crashlytics تنبيه "ملف dSYM غير متوفّر" في وحدة تحكّم Firebase. إذا تلقّيت هذا التنبيه، تأكَّد أولاً من أنّ Xcode ينشئ ملف dSYM الصحيح لكل إصدار:

  1. افتح مشروعك في Xcode، ثم اختَر ملف المشروع في Xcode Navigator.

  2. اختَر هدف الإنشاء الرئيسي.

  3. افتح علامة التبويب إعدادات الإصدار (Build Settings) للهدف، ثم انقر على الكل (All).

  4. ابحث عن "debug information format".

  5. اضبط تنسيق معلومات تصحيح الأخطاء على DWARF مع ملف dSYM لجميع أنواع الإصدارات.

  6. أعِد إنشاء تطبيقك.

من المفترض أن تظهر الآن تقارير الأعطال في لوحة بيانات Crashlytics. إذا استمرت المشكلة أو واجهت أخطاء أخرى، حاوِل تحديد موقع ملفات dSYM وتحميلها إلى "Crashlytics" يدويًا.

العثور على ملفات dSYM على جهاز محلي

نفِّذ الأمر التالي لعرض جميع معرّفات UUID لملفات dSYM على جهازك وابحث عن ملف dSYM المفقود:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

بعد العثور على ملف dSYM، حمِّله يدويًا إلى Crashlytics. إذا لم يعرض الأمر mdfind أي نتائج، يمكنك البحث في دليل Products حيث يوجد .app (يقع دليل Products تلقائيًا في Derived Data). إذا تم إصدار تطبيقك في قناة الإصدار العلني، يمكنك أيضًا البحث عن dSYM في دليل .xcarchive على القرص:

  1. في Xcode، افتح نافذة Organizer، ثم اختَر تطبيقك من القائمة. يعرض Xcode قائمة بالأرشيفات لمشروعك.

  2. انقر مع الضغط على مفتاح Control على أرشيف لعرضه في Finder. انقر عليه مع الضغط على مفتاح Control مرة أخرى، ثم انقر على إظهار محتويات الحزمة.

  3. يحتوي الملف .xcarchive على دليل dSYMs الذي يتضمّن ملفات dSYM التي تم إنشاؤها كجزء من عملية الأرشفة في Xcode.

تحميل ملفات dSYM

يتيح Crashlytics طرقًا متعددة لتحميل ملفات dSYM، إما تلقائيًا أو يدويًا.

(إجراء يُنصح به) معالجة ملفات dSYM وتحميلها تلقائيًا

عند إعداد Crashlytics في البداية، من المرجّح أنّك ضبطت سلوك التحميل التلقائي هذا لتطبيقك. ومع ذلك، إذا تعذّر إجراء عمليات التحميل التلقائية، تأكَّد من صحة الإعدادات.

تحميل ملفات dSYM يدويًا

إذا تعذّر تحميل الملفات تلقائيًا، يمكنك تحميل ملفات dSYM يدويًا باستخدام أحد الخيارَين التاليَين.

  • الخيار 1: استخدِم واجهة "السحب والإفلات" في وحدة تحكّم Firebase لتحميل ملف ZIP يحتوي على ملفات dSYM (انتقِل إلى DevOps & Engagement > لوحة بيانات Crashlytics > علامة التبويب dSYMs).

  • الخيار 2: استخدِم النص البرمجي upload-symbols الذي يمكنك استدعاؤه من أي مكان في عملية الإنشاء لتحميل ملفات dSYM يدويًا. لتشغيل النص البرمجي upload-symbols، استخدِم أحد الخيارَين التاليَين:

    • الخيار "أ": أدرِج السطر التالي في عملية الإنشاء:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • الخيار "ب": شغِّل النص البرمجي مباشرةً من وحدة التحكّم:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    للاطّلاع على ملاحظات الاستخدام والتعليمات الإضافية حول هذا النص البرمجي، شغِّل upload-symbols باستخدام المَعلمة --help.