| انتخاب پلاتفرم: | iOS+ Android Flutter Unity |
میتوانید روی مشکلی کلیک کنید و گزارش رویداد مفصلی را در داشبورد DevOps و تعامل > Crashlytics در کنسول Firebase دریافت کنید. میتوانید این گزارشها را سفارشیسازی کنید تا به شما کمک کند آنچه را در برنامهتان اتفاق میافتد و شرایط پیرامون رویدادهای گزارششده به Crashlytics را بهتر درک کنید.
استثناهای گرفتهشده و استثناهای گرفتهنشده را به Crashlytics گزارش کنید.
برای اشکالزدایی مشکلات خرابی حافظه، گزارشهای GWP-ASan را اضافه کنید.
برنامهتان را برای ثبت کلیدهای سفارشی، پیامهای ثبت سفارشی، و شناسههای کاربر آماده کنید.
اگر برنامهتان از کیت توسعه نرمافزار Firebase برای Google Analytics استفاده میکند، بهطور خودکار گزارشهای ردپای رخدادها را دریافت کنید. این گزارشها به شما امکان میدهد کنشهای کاربر را که منجر به رویداد جمعآوریشده توسط Crashlytics در برنامهتان میشود ببینید.
گزارش خرابی خودکار را خاموش کنید و گزارشدهی با موافقت را برای کاربران فعال کنید. توجه داشته باشید که بهطور پیشفرض، Crashlytics بهطور خودکار گزارشهای خرابی را برای همه کاربران برنامهتان جمعآوری میکند.
گزارش استثناها
گزارش موارد استثنای پیداشده
اگر استثناهایی دارید که انتظار میرود، میتوانید از کیت توسعه نرمافزار Crashlytics بخواهید آنها را بهعنوان رویدادهای غیرکشنده گزارش کند. این رویدادها در دستگاه ثبت میشوند و سپس همراه با گزارش رویداد مهلک بعدی یا زمانی که کاربر نهایی بازی را بازراهاندازی میکند ارسال میشوند.
میتوانید استثناها را در C# بااستفاده از روش زیر ثبت کنید:
Crashlytics.LogException(Exception ex);
میتوانید استثناهای موردانتظار را در بلوکهای try/catch بازیتان ثبت کنید:
try { myMethodThatThrows(); } catch (Exception e) { Crashlytics.LogException(e); // handle your exception here! }
گزارش کردن موارد استثنای مشخصنشده
برای استثناهای گرفتهنشده که باعث ازکارافتادن بازی شما نمیشوند (برای مثال، استثناهای گرفتهنشده C# در منطق بازی)، میتوانید با تنظیم کردن ویژگی Crashlytics.ReportUncaughtExceptionsAsFatal روی true در جایی که Crashlytics را در پروژه Unity خود راهاندازی میکنید، از کیت توسعه نرمافزار Crashlytics بخواهید آنها را بهعنوان رویدادهای مهلک گزارش کند.
این رویدادها بهصورت همزمان به 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 برای اشکالزدایی مشکلات خرابی حافظه
برای برنامههای Android که از IL2CPP استفاده میکنند، Crashlytics میتواند با جمعآوری گزارشهای GWP-ASan به شما کمک کند خرابیهای ناشی از خطاهای حافظه محلی را اشکالزدایی کنید. این خطاهای مربوط به حافظه میتواند با خرابی حافظه در برنامهتان مرتبط باشد، که علت اصلی آسیبپذیریهای امنیتی برنامه است.
در داشبورد Crashlytics در DevOps و تعامل در کنسول Firebase، میتوانید کارهای زیر را با این دادهها انجام دهید:
وقتی روی جزئیات مشکل کلیک میکنید، میتوانید این دادهها را در برگه جدید «ردیابی پشتهای حافظه» مشاهده کنید.
میتوانید از سیگنال و فیلتر جدید «گزارش GWP-ASan» برای مشاهده سریع همه مشکلات مربوط به این دادهها استفاده کنید.
اگر برنامهتان از جدیدترین Crashlytics SDK برای Unity (نسخه ۱۰.۷.۰ و بالاتر) استفاده کند و GWP-ASan بهطور صریح فعال شده باشد (لازم است «مانیفست برنامه Android» را اصلاح کنید)، میتوانید گزارشهای حافظه GWP-ASan را دریافت کنید. اگر کد ++C در برنامهتان دارید، میتوانید راهاندازی GWP-ASan را بااستفاده از کد بومی نمونه در اسناد Android آزمایش کنید.
افزودن کلیدهای سفارشی
کلیدهای سفارشی به شما کمک میکنند تا وضعیت خاصی از برنامهتان را که منجر به ازکارافتادن میشود دریافت کنید. میتوانید جفتهای کلید-مقدار دلخواه را با گزارشهای خرابی مرتبط کنید، سپس از کلیدهای سفارشی برای جستجو و فیلتر کردن گزارشهای خرابی در داشبورد DevOps و تعامل > Crashlytics کنسول Firebase استفاده کنید.
میتوانید مشکلات منطبق با کلید سفارشی را جستجو کنید.
وقتی درحال بررسی مشکل خاصی در کنسول هستید، میتوانید کلیدهای سفارشی مرتبط با هر رویداد را مشاهده کنید (زیربرگه کلیدها) و حتی رویدادها را براساس کلیدهای سفارشی فیلتر کنید (منو فیلتر در بالای صفحه).
وقتی چندینبار فراخوانی شود، مقادیر جدید برای کلیدهای موجود مقدار را بهروزرسانی میکند، و فقط جدیدترین مقدار هنگام ثبت خرابی ضبط میشود.
Crashlytics.SetCustomKey(string key, string value);
افزودن پیامهای گزارش سفارشی
برای اینکه زمینه بیشتری درباره رویدادهای منتهی به خرابی داشته باشید، میتوانید گزارشهای سفارشی Crashlytics را به برنامهتان اضافه کنید. Crashlytics گزارشها را با دادههای خرابی شما مرتبط میکند و وقتی جزئیات مشکلی را مشاهده میکنید، آنها را در برگه گزارشها نمایش میدهد (همه مشکلاتتان را در داشبورد Crashlytics DevOps و تعامل > در کنسول Firebase ببینید).
Crashlytics.Log(string message);
تنظیم شناسههای کاربر
میتوانید از شماره شناسه، کد، یا مقدار درهمسازیشده برای شناسایی منحصربهفرد کاربر نهایی برنامهتان استفاده کنید، بدون اینکه اطلاعات شخصی او را فاش یا منتقل کنید. همچنین میتوانید با تنظیم مقدار روی رشته خالی، آن را پاک کنید. این مقدار هنگام مشاهده خرابی خاصی در داشبورد DevOps و تعامل > Crashlytics در کنسول Firebase نمایش داده میشود.
Crashlytics.SetUserId(string identifier);
دریافت گزارشهای ردپای رخدادها
گزارشهای ردپای رخدادها به شما کمک میکند تعاملاتی را که کاربر با برنامهتان داشته است و منجر به خرابی، رویداد غیرکشنده، یا ANR شده است بهتر درک کنید. این گزارشها میتوانند هنگام تلاش برای بازتولید و اشکالزدایی مشکل مفید باشند.
گزارشهای ردپای رخدادها توسط Google Analytics ارائه میشوند، بنابراین برای دریافت گزارشهای ردپای رخدادها، باید Google Analytics را برای پروژه Firebase خود فعال کنید و کیت توسعه نرمافزار Firebase برای Google Analytics را به برنامه خود اضافه کنید. پساز برآورده شدن این الزامات، گزارشهای ردپای رخدادها بهطور خودکار با دادههای رویداد در برگه گزارشها گنجانده میشوند وقتی جزئیات یک مشکل را مشاهده میکنید (همه مشکلات خود را در داشبورد DevOps و تعامل > Crashlytics در کنسول Firebase ببینید).
Analytics SDK
بهطور خودکار رویداد screen_view را ثبت میکند
که به گزارشهای ردپای رخدادها امکان میدهد فهرستی از صفحههای مشاهدهشده قبلاز
خرابی، رویداد غیرکشنده، یا ANR را نشان دهد. گزارش ردپای رخدادهای screen_view حاوی پارامتر firebase_screen_class است.
گزارشهای ردپای رخدادها همچنین با هرگونه رویداد سفارشی که بهصورت دستی در جلسه کاربر ثبت میکنید، ازجمله دادههای پارامتر رویداد، پر میشوند. این دادهها میتواند به نمایش مجموعهای از کنشهای کاربر که منجر به خرابی، رویداد غیرکشنده، یا ANR شده است کمک کند.
توجه داشته باشید که میتوانید جمعآوری و استفاده از دادههای Google Analytics را کنترل کنید، که شامل دادههایی است که گزارشهای ردپای رخدادها را پر میکند.
فعال کردن گزارشدهی با موافقت
بهطور پیشفرض، Crashlytics بهطور خودکار گزارشهای خرابی را برای همه کاربران برنامهتان جمعآوری میکند. با اجازه دادن به کاربران برای موافقت با گزارش خرابیها، میتوانید کنترل بیشتری بر دادههایی که ارسال میکنند به آنها بدهید.
برای غیرفعال کردن جمعآوری خودکار فقط برای کاربران منتخب، لغو جمعآوری داده Crashlytics را در زمان اجرا فراخوانی کنید. مقدار لغو در همه راهاندازیهای بعدی برنامهتان باقی میماند تا Crashlytics بتواند بهطور خودکار گزارشهای آن کاربر را جمعآوری کند.
Crashlytics.IsCrashlyticsCollectionEnabled = true
اگر کاربر بعداً از جمعآوری داده انصراف دهد، میتوانید false را بهعنوان مقدار لغو ارسال کنید که دفعه بعدی که کاربر برنامه را راهاندازی میکند اعمال میشود و در همه راهاندازیهای بعدی برای آن کاربر باقی میماند.
مدیریت دادههای «اطلاعات آماری خرابی»
«اطلاعات آماری خرابی» با مقایسه ردیابیهای پشته ناشناسسازیشده شما با ردیابیهای سایر برنامههای Firebase و اطلاعرسانی به شما درباره اینکه آیا مشکل شما بخشی از یک روند بزرگتر است یا نه، به شما کمک میکند مشکلات را حل کنید. برای بسیاری از مشکلات، «اطلاعات آماری خرابی» حتی منابعی را برای کمک به اشکالزدایی خرابی ارائه میدهد.
«اطلاعات آماری خرابی» از دادههای انبوهشی خرابی برای شناسایی روندهای پایداری رایج استفاده میکند. اگر ترجیح میدهید دادههای برنامهتان را همرسانی نکنید، میتوانید از منوِ اطلاعات آماری خرابی در بالای فهرست مشکل در داشبورد DevOps و تعامل > Crashlytics در کنسول Firebase از «اطلاعات آماری خرابی» انصراف دهید.
مراحل بعدی
- دادههایتان را به BigQuery یا Cloud Logging صادر کنید تا از ویژگیها و تحلیلهای پیشرفته، مثل پرسوجو کردن دادهها، ساختن داشبوردهای سفارشی، و تنظیم کردن هشدارهای سفارشی بهرهمند شوید.