| انتخاب پلاتفرم: | iOS+ Android Flutter Unity |
میتوانید روی مشکلی کلیک کنید و گزارش رویداد دقیقی را در داشبورد DevOps و تعامل > Crashlytics در کنسول Firebase دریافت کنید. میتوانید این گزارشها را سفارشیسازی کنید تا به شما کمک کند آنچه را در برنامهتان اتفاق میافتد و شرایط پیرامون رویدادهای گزارششده به Crashlytics را بهتر درک کنید.
استثناهای گرفتهشده و استثناهای گرفتهنشده را به Crashlytics گزارش کنید.
برای اشکالزدایی مشکلات خرابی حافظه، گزارشهای GWP-ASan را اضافه کنید.
برنامهتان را برای ثبت کلیدهای سفارشی، پیامهای ثبت سفارشی، و شناسههای کاربر آماده کنید.
اگر برنامهتان از کیت توسعه نرمافزار Firebase برای Google Analytics استفاده میکند، بهطور خودکار گزارشهای ردپای رخدادها را دریافت کنید. این گزارشها به شما امکان میدهند کنشهای کاربر را که منجر به رویداد جمعآوریشده توسط Crashlytics در برنامهتان میشود ببینید.
گزارش خرابی خودکار را خاموش کنید و گزارشدهی با موافقت را برای کاربران فعال کنید. توجه داشته باشید که بهطور پیشفرض، Crashlytics بهطور خودکار گزارشهای خرابی را برای همه کاربران برنامهتان جمعآوری میکند.
گزارش استثناها
گزارش موارد استثنای پیداشده
اگر استثناهایی دارید که انتظار میرود، میتوانید از Crashlytics SDK بخواهید آنها را بهعنوان رویدادهای غیرکشنده گزارش کند. این رویدادها در دستگاه ثبت میشوند و سپس همراه با گزارش رویداد مهلک بعدی یا زمانی که کاربر نهایی بازی را بازراهاندازی میکند ارسال میشوند.
میتوانید استثناها را در 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 SDK را وادار کنید آنها را بهعنوان رویدادهای مهلک گزارش کند.
این رویدادها بهصورت همزمان به 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 گزارشها را با دادههای خرابی شما مرتبط میکند و آنها را در برگه گزارشها نمایش میدهد وقتی جزئیات یک مشکل را مشاهده میکنید (همه مشکلات خود را در داشبورد DevOps و تعامل > Crashlytics در کنسول 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 و اطلاعرسانی به شما درباره اینکه آیا مشکل شما بخشی از یک روند بزرگتر است یا نه، به شما کمک میکند مشکلات را حل کنید. برای بسیاری از مشکلات، «اطلاعات آماری خرابی» حتی منابعی را برای کمک به اشکالزدایی خرابی ارائه میدهد.
«اطلاعات آماری خرابی» از دادههای انبوهشی خرابی برای شناسایی روندهای پایداری رایج استفاده میکند. اگر ترجیح میدهید دادههای برنامهتان را همرسانی نکنید، میتوانید از منو Crash Insights در بالای فهرست مشکل در داشبورد DevOps و تعامل > Crashlytics در کنسول Firebase از Crash Insights انصراف دهید.
مراحل بعدی
- برای تجزیهوتحلیل و ویژگیهای پیشرفته، دادههایتان را به BigQuery یا Cloud Logging صادر کنید مانند پرسوجو از دادههایتان، ساختن داشبوردهای سفارشی، و راهاندازی هشدارهای سفارشی.