گزارش‌های خرابی Firebase Crashlytics خود را سفارشی کنید


در داشبورد Crashlytics ، می‌توانید روی یک مشکل کلیک کنید و گزارش رویداد مفصلی دریافت کنید. می‌توانید آن گزارش‌ها را سفارشی کنید تا به شما کمک کند بهتر بفهمید در برنامه‌تان چه اتفاقی می‌افتد و شرایط پیرامون رویدادهای گزارش‌شده به Crashlytics .

  • اگر برنامه شما از Firebase SDK برای Google Analytics استفاده می‌کند، به‌طور خودکار گزارش‌های خرده نان را دریافت کنید. این گزارش‌ها به شما امکان مشاهده اقدامات کاربر را می‌دهند که منجر به رویداد جمع‌آوری‌شده Crashlytics در برنامه شما می‌شود.

  • گزارش خودکار خرابی را خاموش کنید و گزارش انتخابی را برای کاربران خود فعال کنید . توجه داشته باشید که به‌طور پیش‌فرض، Crashlytics به‌طور خودکار گزارش‌های خرابی را برای همه کاربران برنامه شما جمع‌آوری می‌کند.

موارد استثنا را گزارش کنید

گزارش موارد استثنا

اگر استثناهایی دارید که انتظار می رود، می توانید از Crashlytics SDK بخواهید آنها را به عنوان رویدادهای غیر کشنده گزارش کند. این رویدادها در دستگاه ثبت می شوند و سپس همراه با گزارش رویداد مرگبار بعدی یا زمانی که کاربر نهایی بازی را مجدداً راه اندازی می کند، ارسال می شود.

با استفاده از روش زیر می توانید استثناها را در سی شارپ ثبت کنید:

Crashlytics.LogException(Exception ex);

می توانید استثناهای مورد انتظار را در بلوک های try/catch بازی خود ثبت کنید:

try {
    myMethodThatThrows();
} catch (Exception e) {
   Crashlytics.LogException(e);
   // handle your exception here!
}

استثناهای کشف نشده را گزارش کنید

برای استثناهای کشف نشده که بازی شما را خراب نمی‌کنند (به عنوان مثال، استثناهای C# در منطق بازی)، می‌توانید از Crashlytics SDK بخواهید با تنظیم Crashlytics Crashlytics.ReportUncaughtExceptionsAsFatal true را به عنوان رویدادهای مرگبار گزارش کند. . این رویدادها بدون نیاز به شروع مجدد بازی توسط کاربر نهایی به صورت بلادرنگ به Crashlytics گزارش می شود.

گزارش این استثناهای کشف نشده به عنوان رویدادهای مرگبار به این معنی است که آنها در آمار کاربران بدون تصادف شما و هشدارهای سرعت به حساب می آیند.

توجه داشته باشید که خرابی های بومی همیشه به عنوان رویدادهای مرگبار گزارش می شوند. این رویدادها در دستگاه ثبت می‌شوند و پس از شروع مجدد بازی توسط کاربر نهایی ارسال می‌شوند.

void Start() {
    // Since there is no try-block surrounding this call, if an exception is thrown,
    // it is considered unexpected.
    // Setting `Crashlytics.ReportUncaughtExceptionsAsFatal = true`
    // will ensure that such cases are reported as fatals.
    thirdPartyMethodThatMayThrow();
}

شامل گزارش های GWP-ASan برای رفع اشکال مشکلات خرابی حافظه

برای برنامه‌های اندرویدی که از IL2CPP استفاده می‌کنند، Crashlytics می‌تواند با جمع‌آوری گزارش‌های GWP-ASan به شما کمک کند خرابی‌های ناشی از خطاهای حافظه بومی را رفع اشکال کنید. این خطاهای مربوط به حافظه می تواند با خراب شدن حافظه در برنامه شما مرتبط باشد، که علت اصلی آسیب پذیری های امنیتی برنامه است.

  • وقتی روی جزئیات یک مشکل در داشبورد Crashlytics کلیک می‌کنید، می‌توانید این داده‌ها را در برگه جدید «ردیابی پشته حافظه» مشاهده کنید.

  • همچنین می‌توانید از سیگنال و فیلتر جدید «گزارش GWP-ASan» برای مشاهده سریع همه مشکلات مربوط به این داده‌ها استفاده کنید.

اگر برنامه شما از جدیدترین Crashlytics SDK for Unity (نسخه 10.7.0+) استفاده می‌کند و GWP-ASan را به صراحت فعال کرده است، می‌توانید گزارش‌های حافظه GWP-ASan را دریافت کنید (به شما نیاز دارد مانیفست برنامه Android خود را تغییر دهید ). اگر کد ++C در برنامه خود دارید، می توانید راه اندازی GWP-ASan خود را با استفاده از نمونه کد بومی در اسناد Android آزمایش کنید.

کلیدهای سفارشی را اضافه کنید

کلیدهای سفارشی به شما کمک می کنند تا وضعیت خاص برنامه خود را که منجر به خرابی می شود، دریافت کنید. می‌توانید جفت‌های کلید/مقدار دلخواه را با گزارش‌های خرابی خود مرتبط کنید، سپس از کلیدهای سفارشی برای جستجو و فیلتر کردن گزارش‌های خرابی در کنسول Firebase استفاده کنید.

  • در داشبورد Crashlytics ، می‌توانید مسائلی را جستجو کنید که با یک کلید سفارشی مطابقت دارند.
  • هنگامی که در حال بررسی یک مشکل خاص در کنسول هستید، می‌توانید کلیدهای سفارشی مرتبط برای هر رویداد (زیربرگه کلیدها ) را مشاهده کنید و حتی رویدادها را با کلیدهای سفارشی فیلتر کنید (منوی فیلتر در بالای صفحه).

هنگامی که چندین بار فراخوانی می شود، مقادیر جدید برای کلیدهای موجود، مقدار را به روز می کند و تنها زمانی که یک خرابی ثبت می شود، آخرین مقدار ثبت می شود.

Crashlytics.SetCustomKey(string key, string value);

پیام های ثبت سفارشی را اضافه کنید

پیام‌های ثبت‌شده با داده‌های خرابی شما مرتبط هستند و هنگام مشاهده یک خرابی خاص در داشبورد Firebase Crashlytics قابل مشاهده هستند.

Crashlytics.Log(string message);

تعیین شناسه های کاربر

شما می توانید از یک شماره شناسه، رمز یا مقدار هش شده برای شناسایی منحصر به فرد کاربر نهایی برنامه خود بدون افشا یا انتقال هیچ یک از اطلاعات شخصی آنها استفاده کنید. همچنین می توانید مقدار را با تنظیم آن روی یک رشته خالی پاک کنید. این مقدار در داشبورد Firebase Crashlytics هنگام مشاهده یک خرابی خاص نمایش داده می شود.

Crashlytics.SetUserId(string identifier);

سیاهههای مربوط به پودر سوخاری را دریافت کنید

گزارش‌های Breadcrumb به شما درک بهتری از تعاملاتی که کاربر با برنامه شما منجر به خرابی، رویداد غیرکشنده یا ANR می‌کند، می‌دهد. این گزارش‌ها می‌توانند هنگام تلاش برای بازتولید و رفع اشکال یک مشکل مفید باشند.

گزارش‌های Breadcrumb توسط Google Analytics ارائه می‌شوند، بنابراین برای دریافت گزارش‌های breadcrumb، باید Google Analytics را برای پروژه Firebase خود فعال کنید و Firebase SDK برای Google Analytics را به برنامه خود اضافه کنید . هنگامی که این الزامات برآورده شد، هنگام مشاهده جزئیات یک مشکل، گزارش‌های خرده نان به طور خودکار با داده‌های رویداد در برگه گزارش‌ها گنجانده می‌شوند.

Analytics SDK به‌طور خودکار رویداد screen_view را ثبت می‌کند که به گزارش‌های خرده نان امکان می‌دهد فهرستی از صفحه‌های مشاهده شده قبل از خرابی، رویداد غیرمرگبار یا ANR را نشان دهند. یک سیاهه پودر screen_view حاوی یک پارامتر firebase_screen_class است.

گزارش‌های Breadcrumb همچنین با هر رویداد سفارشی که به صورت دستی در جلسه کاربر ثبت می‌کنید، پر می‌شوند، از جمله داده‌های پارامتر رویداد. این داده‌ها می‌توانند به نمایش مجموعه‌ای از اقدامات کاربر منجر به خرابی، رویداد غیرکشنده یا ANR کمک کنند.

توجه داشته باشید که می‌توانید جمع‌آوری و استفاده از داده‌های Google Analytics را کنترل کنید ، که شامل داده‌هایی است که گزارش‌های خرده نان را پر می‌کند.

فعال کردن گزارش انتخابی

به طور پیش فرض، Crashlytics به طور خودکار گزارش های خرابی را برای همه کاربران برنامه شما جمع آوری می کند. می‌توانید با اجازه دادن به کاربران در گزارش خرابی‌ها، کنترل بیشتری بر روی داده‌هایی که ارسال می‌کنند، در اختیار آنها قرار دهید.

برای غیرفعال کردن جمع‌آوری خودکار و مقداردهی اولیه Crashlytics فقط برای کاربران منتخب، در زمان اجرا با لغو مجموعه داده‌های Crashlytics تماس بگیرید. مقدار لغو در سراسر راه اندازی برنامه شما باقی می ماند بنابراین Crashlytics می تواند به طور خودکار گزارش ها را جمع آوری کند. برای انصراف از گزارش خودکار خرابی، مقدار false به عنوان مقدار نادیده بگیرید. وقتی روی false تنظیم می شود، مقدار جدید تا اجرای بعدی برنامه اعمال نمی شود.

Crashlytics.IsCrashlyticsCollectionEnabled = true

داده‌های Crash Insights را مدیریت کنید

Crash Insights به شما کمک می‌کند با مقایسه ردیابی‌های پشته ناشناس خود با ردیابی‌های سایر برنامه‌های Firebase، مشکلات را حل کنید و به شما اطلاع می‌دهد که آیا مشکل شما بخشی از یک روند بزرگ‌تر است. برای بسیاری از مسائل، Crash Insights حتی منابعی را برای کمک به شما در رفع اشکال خرابی فراهم می کند.

Crash Insights از داده‌های خرابی انبوه برای شناسایی روندهای رایج پایداری استفاده می‌کند. اگر ترجیح می‌دهید داده‌های برنامه خود را به اشتراک نگذارید، می‌توانید از منوی Crash Insights در بالای فهرست مشکلات Crashlytics در کنسول Firebase ، از Crash Insights انصراف دهید.