الحصول على تقارير أعطال قابلة للقراءة في لوحة بيانات 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" فيconsole Firebase. إذا تلقّيت هذا التنبيه، تأكَّد أولاً من أنّ Xcode يُنشئ ملف dSYM الصحيح لكل إصدار:

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

  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. انقر مع الضغط على مفتاح Ctrl على أرشيف لعرضه في Finder. انقر مع الضغط على مفتاح Ctrl مرة أخرى، ثم انقر على عرض محتوى الحزمة.

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

تحميل ملفات dSYM

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

(إجراء يُنصح به) معالجة ملفات 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.