بهطور پیشفرض، Firebase Crashlytics بهطور خودکار فایلهای نماد اشکالزدایی (dSYM) شما را پردازش میکند تا گزارشهای خرابی ابهامزداییشده و قابل خواندن توسط انسان را به شما ارائه دهد. این رفتار زمانی تنظیم میشود که یک اسکریپت اجرا را اضافه میکنید که Crashlytics را به مرحله ساخت برنامه خود راهاندازی میکند.
متأسفانه، چند مورد وجود دارد که میتواند باعث شود آپلود dSYM شما با شکست مواجه شود، مانند بیتکد در برنامه شما یا سایر پیکربندیهای پروژه منحصر به فرد. این راهنما راههایی برای عیبیابی زمانی که Crashlytics نمیتواند dSYM برنامه شما را پیدا کند، ارائه میکند.
بررسی کنید آیا Xcode در حال تولید dSYM است یا خیر
اغلب اوقات، فایل های dSYM از بین می روند زیرا Xcode آنها را تولید نمی کند. هنگامی که آپلود ناموفق است، Crashlytics یک هشدار "DSYM گم شده" را در کنسول Firebase نمایش می دهد. اگر این هشدار را دریافت کردید، ابتدا بررسی کنید که Xcode dSYM درستی را برای هر بیلد تولید می کند:
پروژه خود را در Xcode باز کنید و فایل پروژه را در Xcode Navigator انتخاب کنید.
هدف ساخت اصلی خود را انتخاب کنید.
برگه Build Settings را باز کنید، سپس روی All کلیک کنید.
«فرمت اطلاعات اشکال زدایی» را جستجو کنید.
فرمت اطلاعات اشکال زدایی را با فایل dSYM برای همه انواع ساخت خود روی DWARF تنظیم کنید.
برنامه خود را بازسازی کنید
گزارش های خرابی شما اکنون باید در کنسول Firebase ظاهر شود. اگر مشکل ادامه داشت یا با خطاهای دیگری مواجه شدید، dSYM خود را پیدا کرده و آن را به صورت دستی در Crashlytics آپلود کنید.
dSYM های خود را پیدا کنید
گاهی اوقات Crashlytics به دلیل تنظیمات بیت کد یا اتصال کنسول نمی تواند dSYM برنامه شما را پیدا کند. هنگامی که این اتفاق می افتد، دو راه دیگر وجود دارد که می توانید عیب یابی کنید:
dSYM های خود را آپلود کنید
برای آپلود دستی dSYM های خود، می توانید از گزینه "Drag and Drop" مبتنی بر کنسول برای آپلود یک بایگانی فشرده حاوی فایل های dSYM خود استفاده کنید (به کنسول Firebase > Crashlytics > تب dSYMs بروید).
از طرف دیگر، به عنوان یک نسخه پشتیبان، Crashlytics شامل یک اسکریپت upload-symbols
است که می توانید از هر نقطه در فرآیند ساخت خود تماس بگیرید تا فایل های dSYM خود را به صورت دستی آپلود کنید. این اسکریپت اطلاعات بیشتری در مورد فرآیند آپلود و پیام های خطای جامع تری ارائه می دهد (برای یادداشت های استفاده و دستورالعمل های اضافی، upload-symbols
بدون هیچ پارامتری اجرا کنید).
هنگام آپلود بیت کدهای dSYM، حذف هر فایل نماد موجود در بایگانی zip با اجرای موارد زیر ممکن است مفید باشد:
unzip appDsyms.zip
cd appDsyms rm -rf $(find . | grep Icon)
# Enumerate all the dSYMs
upload-symbols ... $(ls)
برای اجرای اسکریپت 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
بهطور پیشفرض، Firebase Crashlytics بهطور خودکار فایلهای نماد اشکالزدایی (dSYM) شما را پردازش میکند تا گزارشهای خرابی ابهامزداییشده و قابل خواندن توسط انسان را به شما ارائه دهد. این رفتار زمانی تنظیم میشود که یک اسکریپت اجرا را اضافه میکنید که Crashlytics را به مرحله ساخت برنامه خود راهاندازی میکند.
متأسفانه، چند مورد وجود دارد که میتواند باعث شود آپلود dSYM شما با شکست مواجه شود، مانند بیتکد در برنامه شما یا سایر پیکربندیهای پروژه منحصر به فرد. این راهنما راههایی برای عیبیابی زمانی که Crashlytics نمیتواند dSYM برنامه شما را پیدا کند، ارائه میکند.
بررسی کنید آیا Xcode در حال تولید dSYM است یا خیر
اغلب اوقات، فایل های dSYM از بین می روند زیرا Xcode آنها را تولید نمی کند. هنگامی که آپلود ناموفق است، Crashlytics یک هشدار "DSYM گم شده" را در کنسول Firebase نمایش می دهد. اگر این هشدار را دریافت کردید، ابتدا بررسی کنید که Xcode dSYM درستی را برای هر بیلد تولید می کند:
پروژه خود را در Xcode باز کنید و فایل پروژه را در Xcode Navigator انتخاب کنید.
هدف ساخت اصلی خود را انتخاب کنید.
برگه Build Settings را باز کنید، سپس روی All کلیک کنید.
«فرمت اطلاعات اشکال زدایی» را جستجو کنید.
فرمت اطلاعات اشکال زدایی را با فایل dSYM برای همه انواع ساخت خود روی DWARF تنظیم کنید.
برنامه خود را بازسازی کنید
گزارش های خرابی شما اکنون باید در کنسول Firebase ظاهر شود. اگر مشکل ادامه داشت یا با خطاهای دیگری مواجه شدید، dSYM خود را پیدا کرده و آن را به صورت دستی در Crashlytics آپلود کنید.
dSYM های خود را پیدا کنید
گاهی اوقات Crashlytics به دلیل تنظیمات بیت کد یا اتصال کنسول نمی تواند dSYM برنامه شما را پیدا کند. هنگامی که این اتفاق می افتد، دو راه دیگر وجود دارد که می توانید عیب یابی کنید:
dSYM های خود را آپلود کنید
برای آپلود دستی dSYM های خود، می توانید از گزینه "Drag and Drop" مبتنی بر کنسول برای آپلود یک بایگانی فشرده حاوی فایل های dSYM خود استفاده کنید (به کنسول Firebase > Crashlytics > تب dSYMs بروید).
از طرف دیگر، به عنوان یک نسخه پشتیبان، Crashlytics شامل یک اسکریپت upload-symbols
است که می توانید از هر نقطه در فرآیند ساخت خود تماس بگیرید تا فایل های dSYM خود را به صورت دستی آپلود کنید. این اسکریپت اطلاعات بیشتری در مورد فرآیند آپلود و پیام های خطای جامع تری ارائه می دهد (برای یادداشت های استفاده و دستورالعمل های اضافی، upload-symbols
بدون هیچ پارامتری اجرا کنید).
هنگام آپلود بیت کدهای dSYM، حذف هر فایل نماد موجود در بایگانی zip با اجرای موارد زیر ممکن است مفید باشد:
unzip appDsyms.zip
cd appDsyms rm -rf $(find . | grep Icon)
# Enumerate all the dSYMs
upload-symbols ... $(ls)
برای اجرای اسکریپت 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