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


تعالج 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. انقر على علامة التبويب مراحل الإنشاء، ثم وسِّع قسم تنفيذ البرنامج النصي.

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

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

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

تحميل ملفات dSYM

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

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

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

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

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

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

  • الخيار 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.