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

این راهنما نحوه سفارشی کردن گزارش‌های خرابی خود را با استفاده از Firebase Crashlytics SDK توضیح می‌دهد. به‌طور پیش‌فرض، 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 بخواهید با true ویژگی Crashlytics.ReportUncaughtExceptionsAsFatal ، آنها را به عنوان رویدادهای مرگبار گزارش کند. . این رویدادها بدون نیاز به شروع مجدد بازی توسط کاربر نهایی به صورت بلادرنگ به 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);

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

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

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

Crashlytics.IsCrashlyticsCollectionEnabled = true

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

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

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