يعالج Firebase Crashlytics تلقائيًا ملفات رموز تصحيح الأخطاء (dSYM) لمنحك تقارير أعطال تمّت إزالة تشويشها ويمكن لشخص عادي قراءتها. يتم عادةً ضبط هذا السلوك أثناء الإعداد الأولي لـ Crashlytics في تطبيقك، وذلك على وجه التحديد من خلال إضافة نص برمجي للتشغيل يحمِّل تلقائيًا ملفات dSYM أثناء مرحلة إنشاء تطبيقك.
للأسف، هناك بعض الحالات التي قد تؤدي إلى تعذُّر تحميل ملفّات dSYM التلقائية. يوفّر هذا الدليل بعض الطرق لتحديد المشاكل وحلّها عندما يتعذّر على IDE 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
)، تأكَّد من أنّ لديك الإعداد التالي:
انقر على علامة التبويب مراحل الإنشاء، ثم وسِّع قسم تشغيل النص البرمجي.
في قسم ملفات الإدخال، تأكَّد من توفّر المسارات لمواقع جغرافية الملفات التالية:
${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 الصحيح لكل إصدار:
افتح مشروعك في Xcode، ثم اختَر ملف المشروع في "مستكشف" Xcode.
اختَر هدف الإصدار الرئيسي.
افتح علامة التبويب إعدادات الإنشاء للهدف، ثم انقر على الكل.
البحث عن
debug information format
اضبط تنسيق معلومات تصحيح الأخطاء على DWARF مع ملف dSYM لجميع أنواع عمليات التصميم.
أعِد إنشاء تطبيقك.
من المفترض أن تظهر تقارير الأعطال الآن في ملف شخصي في لوحة بيانات 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
على القرص:
في Xcode، افتح نافذة المُنظِّم، ثم اختَر تطبيقك من القائمة. يعرض Xcode قائمة بالأرشيفات لمشروعك.
انقر مع الضغط على مفتاح Ctrl على أرشيف لعرضه في Finder. انقر مع الضغط على مفتاح Ctrl مرة أخرى، ثم انقر على عرض محتوى الحزمة.
ضمن
.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
.