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

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

للأسف، هناك بعض الحالات التي قد تؤدي إلى تعذُّر التحميل التلقائي لملفات dSYM. يوفّر هذا الدليل بعض الطرق لتحديد المشاكل وحلّها عندما يتعذّر على Crashlytics تحديد موقع ملفات dSYM لتطبيقك.

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

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

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

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

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

  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)

التحقّق مما إذا كانت شركة Xcode تنتج نماذج dSYM

وفي أغلب الأحيان، تختفي ملفات dSYM بسبب عدم إنتاجها بواسطة Xcode. عندما يتعذّر إجراء عملية تحميل، يعرض تطبيق Crashlytics التنبيه "DSYM غير متوفّر" في وحدة تحكُّم Firebase. إذا تلقّيت هذا التنبيه، يُرجى التأكّد أولاً من أنّ Xcode ينتج dSYM الصحيح لكل إصدار:

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

  2. اختَر هدف الإصدار الرئيسي.

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

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

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

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

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

تحديد موقع أجهزة dSYM على جهاز محلي

شغِّل الأمر التالي لعرض جميع معرّفات UUID لـ dSYMs على جهازك وابحث عن 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، افتح نافذة Organizationr، ثم اختَر تطبيقك من القائمة. يعرض Xcode قائمة بأرشيفات مشروعك.

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

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

تحميل ملفات dSYM

يتيح تطبيق Crashlytics عدة طُرق لتحميل ملفات dSYM، سواء كان ذلك تلقائيًا أو يدويًا.

(مقترَح) معالجة dSYM تلقائيًا وتحميل الملفات

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

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

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

  • الخيار 1: استخدِم خيار "السحب والإفلات" المستند إلى وحدة التحكّم لتحميل ملف ZIP يحتوي على ملفات dSYM (انتقِل إلى وحدة تحكُّم Firebase > 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.