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

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


تعالج 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)
    إذا كان لديك 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. افتح علامة التبويب إعدادات التصميم للهدف، ثم انقر على الكل.

  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، افتح نافذة المنظِّم ، ثم انقر على تطبيقك من القائمة. يعرض Xcode قائمة بالأرشيفات الخاصة بمشروعك.

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

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

تحميل ملفات dSYM

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

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

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

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

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

  • الخيار 1: استخدِم واجهة "السحب والإفلات" في Firebase Console لتحميل ملف مضغوط يحتوي على ملفات dSYM (انتقِل إلى DevOps والتفاعل > 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.