این صفحه راهنمایی عیبیابی و پاسخهایی به سؤالات متداول درباره استفاده از Crashlytics ارائه میدهد. اگر چیزی را که به دنبالش هستید پیدا نکردید یا به کمک بیشتری نیاز دارید، با پشتیبانی Firebase تماس بگیرید.
عیب یابی عمومی/سؤالات متداول
مشاهده قالبهای مختلف (و گاهی اوقات "انواع") برای برخی از مسائل در جدول Issues
ممکن است متوجه دو قالب مختلف برای مشکلات فهرست شده در جدول مشکلات خود در کنسول Firebase شوید. و همچنین ممکن است در برخی از مشکلات خود متوجه ویژگی به نام "Variants" شوید. در اینجا دلیل آن است!
در اوایل سال 2023، موتور تجزیه و تحلیل بهبود یافته ای را برای گروه بندی رویدادها و همچنین طراحی به روز شده و برخی ویژگی های پیشرفته برای مسائل جدید (مانند انواع!) ارائه کردیم. برای همه جزئیات، پست اخیر وبلاگ ما را بررسی کنید، اما می توانید برای نکات مهم در زیر بخوانید.
Crashlytics همه رویدادهای برنامه شما (مانند خرابیها، موارد غیرمرگبار و ANR) را تجزیه و تحلیل میکند و گروههایی از رویدادها به نام مسائل ایجاد میکند — همه رویدادها در یک شماره یک نقطه شکست مشترک دارند.
برای گروهبندی رویدادها در این مسائل، موتور تجزیه و تحلیل بهبودیافته اکنون به بسیاری از جنبههای رویداد، از جمله فریمهای موجود در ردیابی پشته، پیام استثنا، کد خطا و سایر ویژگیهای پلتفرم یا نوع خطا نگاه میکند.
با این حال، در این گروه از رویدادها، ردیابی پشته منجر به شکست ممکن است متفاوت باشد. ردیابی پشتهای متفاوت میتواند به معنای ریشهای متفاوت باشد. برای نشان دادن این تفاوت احتمالی در یک شماره، اکنون انواع مختلفی را در شماره ایجاد می کنیم - هر گونه یک زیرگروه از رویدادها در یک شماره است که دارای نقطه شکست یکسان و ردیابی پشته مشابه است. با انواع مختلف، میتوانید رایجترین ردیابیهای پشته را در یک موضوع اشکال زدایی کنید و تعیین کنید که آیا دلایل اصلی مختلف منجر به شکست میشوند یا خیر.
در اینجا چیزی است که با این بهبودها تجربه خواهید کرد:
ابرداده اصلاح شده در ردیف شماره نمایش داده می شود
اکنون درک و تریاژ مسائل در برنامه شما آسان تر شده است.مسائل تکراری کمتر
تغییر شماره خط منجر به مشکل جدیدی نمی شود.اشکال زدایی آسانتر مسائل پیچیده با دلایل ریشه ای مختلف
از انواع برای اشکال زدایی رایج ترین ردیابی پشته در یک شماره استفاده کنید.هشدارها و سیگنال های معنی دار تر
یک شماره جدید در واقع نشان دهنده یک باگ جدید است.جستجوی قدرتمندتر
هر شماره حاوی فراداده قابل جستجوی بیشتری است، مانند نوع استثنا و نام بسته.
در اینجا نحوه اجرای این بهبودها آمده است:
وقتی رویدادهای جدیدی را از برنامه شما دریافت میکنیم، بررسی میکنیم که آیا آنها با مشکل موجود مطابقت دارند یا خیر.
اگر مطابقت وجود نداشته باشد، به طور خودکار الگوریتم گروهبندی رویداد هوشمندانهتر خود را در رویداد اعمال میکنیم و یک مشکل جدید با طراحی ابرداده اصلاحشده ایجاد میکنیم.
این اولین بهروزرسانی بزرگی است که ما در حال ایجاد گروهبندی رویداد خود هستیم. اگر بازخوردی دارید یا با مشکلی مواجه شدید، لطفاً با
عدم مشاهده معیارهای بدون تصادف و/یا هشدارهای سرعت
اگر معیارهای بدون خرابی (مانند کاربران و جلسات بدون خرابی) و/یا هشدارهای سرعت را نمیبینید، مطمئن شوید که ازCrashlytics SDK نسخه 10.8.0+.
عدم مشاهده سیاهههای مربوط به خرده نان
اگر گزارشهای خرده نان را نمیبینید، توصیه میکنیم پیکربندی برنامه خود را برای Google Analytics بررسی کنید. مطمئن شوید که شرایط زیر را دارید:
شما اشتراک گذاری داده را برای Google Analytics فعال کرده اید. درباره این تنظیم در مدیریت تنظیمات به اشتراک گذاری داده Analytics خود بیشتر بیاموزید
شما داریدFirebase SDK را برای Google Analytics اضافه کردبه برنامه شما این SDK باید علاوه بر Crashlytics SDK اضافه شود.
شما ازآخرین نسخه Firebase SDKبرای همه محصولاتی که در برنامه خود استفاده می کنید.
به خصوص بررسی کنید که حداقل از نسخه زیر Firebase SDK برای Google Analytics استفاده می کنید:
iOS+ — نسخه 6.3.1+ (نسخه 8.9.0+ برای macOS و tvOS).
dSYM ها گم شده اند/آپلود نمی شوند
مطمئن شوید که فاز ساخت پروژه شما حاوی اسکریپت اجرا Crashlytics است که به Xcode اجازه می دهد تا dSYM های پروژه شما را در زمان ساخت آپلود کند (برای دستورالعمل های مربوط به افزودن اسکریپت ، Initializing Crashlytics را بخوانید). پس از بهروزرسانی پروژه، خرابی را مجبور کنید و تأیید کنید که خرابی در داشبورد Crashlytics ظاهر میشود. اگر در کنسول Firebase هشدار "DSYM گم شده" را مشاهده کردید، Xcode را بررسی کنید تا مطمئن شوید که dSYM ها را به درستی برای ساخت تولید می کند . اگر Xcode به درستی dSYM ها را تولید می کند، و شما همچنان dSYM های گم شده را می بینید، به احتمال زیاد ابزار اجرای اسکریپت هنگام آپلود dSYM ها گیر کرده است. در این مورد، هر یک از موارد زیر را امتحان کنید: مطمئن شوید که از آخرین نسخه Crashlytics استفاده میکنید. فایل های dSYM گم شده را به صورت دستی آپلود کنید: گزینه 1: از گزینه "Drag and Drop" مبتنی بر کنسول در برگه dSYMs برای آپلود یک بایگانی فشرده حاوی فایل های dSYM گم شده استفاده کنید. گزینه 2: از اسکریپت upload-symbols
برای آپلود فایل های dSYM مفقود، برای UUID های ارائه شده در برگه dSYMs استفاده کنید.
اگر همچنان dSYM های گم شده را می بینید یا بارگذاری ها هنوز ناموفق هستند، با پشتیبانی Firebase تماس بگیرید و حتما گزارش های خود را اضافه کنید.
تصادفات نمادین ضعیفی دارند
اگر فریم های کتابخانه برنامه شما فاقد ارجاع به کد برنامه شما هستند، مطمئن شوید -fomit-frame-pointer
به عنوان یک پرچم تلفیقی تنظیم نشده است.اگر چندین فریم (Missing)
برای کتابخانه برنامه خود میبینید، بررسی کنید که آیا dSYMهای اختیاری بهعنوان مفقود (برای نسخه برنامه آسیبدیده) در برگه Crashlytics dSYMs کنسول Firebase فهرست شدهاند. اگر چنین است، مرحله عیبیابی «هشدار گمشده dSYM» را در سؤالات متداول موجود در این صفحه دنبال کنید. توجه داشته باشید که آپلود این dSYM ها نماد خرابی هایی نیست که قبلاً رخ داده است، اما به اطمینان از نمادسازی برای خرابی های آینده کمک می کند.
چه کسی میتواند یادداشتهای مربوط به یک مشکل را مشاهده، بنویسد و حذف کند؟
اعضای پروژه با هر یک از نقشهای زیر میتوانند یادداشتهای موجود را مشاهده و حذف کنند و یادداشتهای جدیدی در مورد یک موضوع بنویسند. مالک یا ویرایشگر پروژه، مدیر Firebase ، سرپرست کیفیت ، یا سرپرست Crashlytics
اعضای پروژه با هر یک از نقش های زیر می توانند یادداشت های ارسال شده در مورد یک موضوع را مشاهده کنند، اما نمی توانند یادداشتی را حذف یا بنویسند. Project Viewer ، Firebase Viewer ، Quality Viewer یا Crashlytics Viewer
کاربران بدون خرابی چگونه محاسبه می شوند؟
چه کسی میتواند یادداشتهای مربوط به یک مشکل را مشاهده، بنویسد و حذف کند؟
اعضای پروژه با هر یک از نقشهای زیر میتوانند یادداشتهای موجود را مشاهده و حذف کنند و یادداشتهای جدیدی در مورد یک موضوع بنویسند. مالک یا ویرایشگر پروژه، مدیر Firebase ، سرپرست کیفیت ، یا سرپرست Crashlytics
اعضای پروژه با هر یک از نقش های زیر می توانند یادداشت های ارسال شده در مورد یک موضوع را مشاهده کنند، اما نمی توانند یادداشتی را حذف یا بنویسند. Project Viewer ، Firebase Viewer ، Quality Viewer یا Crashlytics Viewer
ادغام ها
برنامه همچنین از Google Mobile Ads SDK استفاده می کند اما خرابی نمی کند
disableSDKCrashReporting
، گزارش خرابی را در SDK Mobile Ads خاموش کنید.
مجموعه داده BigQuery من در کجا قرار دارد؟
پشتیبانی از پلتفرم
آیا می توانم از Crashlytics برای macOS یا tvOS استفاده کنم؟
آیا می توانم Crashlytics در پروژه Firebase با چندین برنامه در پلتفرم های مختلف اپل استفاده کنم؟
مسائل پسرفته
موضوع پسرفته چیست؟
برای اولین بار، Crashlytics یک گزارش خرابی در مورد Crash "A" دریافت می کند. Crashlytics یک مشکل مربوط به آن خرابی را باز می کند (مساله "A"). شما این اشکال را به سرعت برطرف میکنید، شماره A را میبندید و سپس نسخه جدیدی از برنامه خود را منتشر میکنید. Crashlytics پس از بسته شدن این موضوع، گزارش دیگری در مورد مشکل "A" دریافت می کند. - اگر گزارش مربوط به نسخه برنامهای است که Crashlytics هنگام بستن مشکل از آن مطلع بوده است (به این معنی که نسخه اصلاً گزارش خرابی را برای هر خرابی ارسال کرده است)، Crashlytics این مشکل را پسرفته در نظر نخواهد گرفت. موضوع بسته خواهد ماند.
- اگر گزارش مربوط به نسخه برنامهای است که Crashlytics از آن اطلاعی نداشته است (به این معنی که این نسخه هرگز هیچ گزارش خرابی برای هر خرابی ارسال نکرده است)، Crashlytics مشکل را پسرفته در نظر میگیرد و دوباره آن را باز میکند.