Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

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

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

این راهنما نحوه سفارشی کردن گزارش‌های خرابی خود را با استفاده از Firebase Crashlytics SDK توضیح می‌دهد. به‌طور پیش‌فرض، Crashlytics به‌طور خودکار گزارش‌های خرابی را برای همه کاربران برنامه‌تان جمع‌آوری می‌کند (شما می‌توانید گزارش خودکار خرابی را غیرفعال کنید و به‌جای آن ، گزارش انتخاب را برای کاربرانتان فعال کنید). Crashlytics چهار مکانیسم ثبت نام را ارائه می‌کند: کلیدهای سفارشی، گزارش‌های ثبت سفارشی، شناسه‌های کاربر و موارد استثنا .

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

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

  • در داشبورد Crashlytics ، می‌توانید مسائلی را جستجو کنید که با یک کلید سفارشی مطابقت دارند.

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

برای تنظیم جفت کلید/مقدار از روش نمونه setCustomKey استفاده کنید. توجه داشته باشید که setCustomKey برای پارامتر value برای پذیرش هر آرگومان ابتدایی یا String بارگذاری می شود. در اینجا چند نمونه آورده شده است:

Java

FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();

crashlytics.setCustomKey("my_string_key", "foo" /* string value */);

crashlytics.setCustomKey("my_bool_key", true /* boolean value */);

crashlytics.setCustomKey("my_double_key", 1.0 /* double value */);

crashlytics.setCustomKey("my_float_key", 1.0f /* float value */);

crashlytics.setCustomKey("my_int_key", 1 /* int value */);

Kotlin+KTX

val crashlytics = Firebase.crashlytics
crashlytics.setCustomKeys {
    key("my_string_key", "foo") // String value
    key("my_bool_key", true)    // boolean value
    key("my_double_key", 1.0)   // double value
    key("my_float_key", 1.0f)   // float value
    key("my_int_key", 1)        // int value
}

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

Java

FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();

crashlytics.setCustomKey("current_level", 3);
crashlytics.setCustomKey("last_UI_action", "logged_in");

Kotlin+KTX

val crashlytics = Firebase.crashlytics
crashlytics.setCustomKeys {
    key("current_level", 3)
    key("last_UI_action", "logged_in")
}

با ارسال نمونه ای از CustomKeysAndValues ​​به متد نمونه setCustomKeys ، جفت های کلید/مقدار را به صورت انبوه اضافه کنید:

Java

CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder()
.putString("string key", "string value")
.putString("string key 2", "string  value 2")
.putBoolean("boolean key", True)
.putBoolean("boolean key 2", False)
.putFloat("float key", 1.01)
.putFloat("float key 2", 2.02)
.build();

FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);

Kotlin+KTX

برای Kotlin، عملکرد موجود ساده تر از استفاده از سازنده CustomKeysAndValues ​​است.

crashlytics.setCustomKeys {
  key("str_key", "hello")
  key("bool_key", true)
  key("int_key", 1)
  key("long_key", 1L)
  key("float_key", 1.0f)
  key("double_key", 1.0)
}

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

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

از log برای کمک به شناسایی دقیق مشکلات استفاده کنید. مثلا:

Java

FirebaseCrashlytics.getInstance().log("message");

Kotlin+KTX

Firebase.crashlytics.log("message")

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

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

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

Java

FirebaseCrashlytics.getInstance().setUserId("user123456789");

Kotlin+KTX

Firebase.crashlytics.setUserId("user123456789")

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

(فقط Android NDK) متادیتا را به گزارش‌های خرابی NDK اضافه کنید

می‌توانید به صورت اختیاری هدر crashlytics.h را در کد C++ خود قرار دهید تا متادیتا را به گزارش‌های خرابی NDK اضافه کنید، مانند کلیدهای سفارشی، گزارش‌های ثبت سفارشی، شناسه‌های کاربر . همه این گزینه ها در این صفحه در بالا توضیح داده شده است.

crashlytics.h به عنوان یک کتابخانه C++ فقط سرصفحه در مخزن Firebase Android SDK GitHub در دسترس است.

برای دستورالعمل‌های مربوط به استفاده از APIهای NDK C++، نظرات موجود در فایل هدر را بخوانید.

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

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

از روش recordException برای ثبت استثناهای غیر کشنده در بلوک‌های catch برنامه خود استفاده کنید. مثلا:

Java

try {
    methodThatThrows();
} catch (Exception e) {
    FirebaseCrashlytics.getInstance().recordException(e);
    // handle your exception here
}

Kotlin+KTX

try {
    methodThatThrows()
} catch (e: Exception) {
    Firebase.crashlytics.recordException(e)
    // handle your exception here
}

همه استثناهای ثبت شده به عنوان مسائل غیر کشنده در کنسول Firebase ظاهر می شوند. خلاصه شماره شامل تمام اطلاعات وضعیتی است که معمولاً از خرابی‌ها دریافت می‌کنید، به همراه خرابی‌ها بر اساس نسخه Android و دستگاه سخت‌افزار.

Crashlytics استثناها را در یک رشته پس‌زمینه اختصاصی پردازش می‌کند تا تأثیر عملکرد بر برنامه شما را به حداقل برساند. برای کاهش ترافیک شبکه کاربران، Crashlytics استثناهای ثبت شده را دسته‌بندی می‌کند و دفعه بعد که برنامه راه‌اندازی می‌شود، آنها را ارسال می‌کند.

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

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

  1. در بلوک application فایل AndroidManifest.xml خود، یک meta-data اضافه کنید تا مجموعه خودکار خاموش شود:

    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
    
  2. با فراخوانی لغو مجموعه داده های Crashlytics در زمان اجرا، مجموعه را برای کاربران منتخب فعال کنید. مقدار لغو در سراسر راه اندازی برنامه شما باقی می ماند بنابراین Crashlytics می تواند به طور خودکار گزارش ها را جمع آوری کند. برای انصراف از گزارش خودکار خرابی، false را به عنوان مقدار نادیده بگیرید. وقتی روی false تنظیم می شود، مقدار جدید تا اجرای بعدی برنامه اعمال نمی شود.

    Java

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);

    Kotlin+KTX

    Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)

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

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

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