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


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

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

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

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

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

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

از متد setCustomValue برای تنظیم جفت کلید/مقدار استفاده کنید. به عنوان مثال:

سویفت

// Set int_key to 100.
Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key")

// Set str_key to "hello".
Crashlytics.crashlytics().setCustomValue("hello", forKey: "str_key")

هدف-C

هنگام تنظیم اعداد صحیح، بولی یا شناور، مقدار را به عنوان @( value ) در کادر قرار دهید.

// Set int_key to 100.
[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"];

// Set str_key to "hello".
[[FIRCrashlytics crashlytics] setCustomValue:@"hello" forKey:@"str_key"];

همچنین می‌توانید مقدار یک کلید موجود را با فراخوانی کلید و تنظیم آن روی مقدار دیگری تغییر دهید. به عنوان مثال:

سویفت

Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key")

// Set int_key to 50 from 100.
Crashlytics.crashlytics().setCustomValue(50, forKey: "int_key")

هدف-C

[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"];

// Set int_key to 50 from 100.
[[FIRCrashlytics crashlytics] setCustomValue:@(50) forKey:@"int_key"];

با استفاده از متد setCustomKeysAndValues ​​با یک NSDictionary به عنوان تنها پارامتر، جفت های کلید/مقدار را به صورت انبوه اضافه کنید:

سویفت

let keysAndValues = [
                 "string key" : "string value",
                 "string key 2" : "string value 2",
                 "boolean key" : true,
                 "boolean key 2" : false,
                 "float key" : 1.01,
                 "float key 2" : 2.02
                ] as [String : Any]

Crashlytics.crashlytics().setCustomKeysAndValues(keysAndValues)

هدف-C

NSDictionary *keysAndValues =
    @{@"string key" : @"string value",
      @"string key 2" : @"string value 2",
      @"boolean key" : @(YES),
      @"boolean key 2" : @(NO),
      @"float key" : @(1.01),
      @"float key 2" : @(2.02)};

[[FIRCrashlytics crashlytics] setCustomKeysAndValues: keysAndValues];

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

برای اینکه به خودتان زمینه بیشتری برای رویدادهایی که منجر به خرابی می شود بدهید، می توانید گزارش های Crashlytics سفارشی را به برنامه خود اضافه کنید. Crashlytics گزارش‌ها را با داده‌های خرابی شما مرتبط می‌کند و آنها را در صفحه Crashlytics کنسول Firebase در زیر برگه Logs نمایش می‌دهد.

سویفت

از log() یا log(format:, arguments:) برای کمک به مشخص کردن مشکلات استفاده کنید. اگر می‌خواهید یک خروجی log مفید با پیام‌ها دریافت کنید، شیئی که به log() ارسال می‌کنید باید با ویژگی CustomStringConvertible مطابقت داشته باشد. log() ویژگی توصیفی را که برای شی تعریف کرده اید برمی گرداند. به عنوان مثال:

Crashlytics.crashlytics().log("Higgs-Boson detected! Bailing out…, \(attributesDict)")

.log(format:, arguments:) مقادیر بازگردانده شده از فراخوانی getVaList() قالب بندی می کند. به عنوان مثال:

Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList(["Higgs-Boson detected! Bailing out…", attributesDict]))

برای جزئیات بیشتر در مورد نحوه استفاده از log() یا log(format:, arguments:) ، به مستندات مرجع Crashlytics مراجعه کنید.

هدف-C

از log یا logWithFormat برای کمک به شناسایی دقیق مشکلات استفاده کنید. توجه داشته باشید که اگر می‌خواهید یک خروجی گزارش مفید با پیام‌ها دریافت کنید، شیئی که به هر یک از روش‌ها ارسال می‌کنید باید ویژگی نمونه description را لغو کند. به عنوان مثال:

[[FIRCrashlytics crashlytics] log:@"Simple string message"];

[[FIRCrashlytics crashlytics] logWithFormat:@"Higgs-Boson detected! Bailing out... %@", attributesDict];

[[FIRCrashlytics crashlytics] logWithFormat:@"Logging a variable argument list %@" arguments:va_list_arg];

برای جزئیات بیشتر در مورد نحوه استفاده از log و logWithFormat ، به مستندات مرجع Crashlytics مراجعه کنید.

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

برای تشخیص یک مشکل، اغلب مفید است که بدانید کدام یک از کاربران شما یک خرابی را تجربه کرده اند. Crashlytics شامل راهی برای شناسایی ناشناس کاربران در گزارش‌های خرابی شما است.

برای افزودن شناسه‌های کاربری به گزارش‌های خود، به هر کاربر یک شناسه منحصربه‌فرد به شکل شماره شناسه، نشانه یا مقدار هش اختصاص دهید:

سویفت

Crashlytics.crashlytics().setUserID("123456789")

هدف-C

[[FIRCrashlytics crashlytics] setUserID:@"123456789"];

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

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

گزارش‌های 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 فقط در صورت انتخاب در کد، گزارش انتخاب را فعال کنید:

  1. با افزودن یک کلید جدید به فایل Info.plist خود، مجموعه خودکار را خاموش کنید:

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

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

    سویفت

    Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)

    هدف-C

    [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];

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

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

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