בלוח הבקרה של Crashlytics אפשר ללחוץ על בעיה ולקבל דוח אירועים. אפשר להתאים אישית את הדוחות האלה כדי להבין טוב יותר מה קורה באפליקציה שלכם והנסיבות שקשורות לאירועים שדווחו Crashlytics
מגדירים לאפליקציה רישום של מפתחות מותאמים אישית, הודעות מותאמות אישית ביומן ומזהי משתמשים.
יש לדווח על חריגים לCrashlytics.
לקבל באופן אוטומטי יומני נתיב ניווט אם האפליקציה שלכם משתמשת ב-Firebase SDK ל-Google Analytics. היומנים האלה מאפשרים לכם לראות פעולות של המשתמשים שהובילו לאירוע שנאסף Crashlytics באפליקציה.
משביתים את הדיווח האוטומטי על קריסות ומפעילים דיווח על בסיס הסכמה למשתמשים. שימו לב, על ידי כברירת מחדל, Crashlytics אוסף דוחות קריסה באופן אוטומטי משתמשי האפליקציה.
הוספת מפתחות בהתאמה אישית
מפתחות בהתאמה אישית עוזרים לכם לקבל את המצב הספציפי של האפליקציה שמוביל לקריסה. אפשר לשייך צמדי מפתח/ערך שרירותיים לדוחות הקריסה, ואז להשתמש את המפתחות המותאמים אישית לחיפוש ולסינון של דוחות קריסה במסוף Firebase.
במרכז הבקרה של Crashlytics אפשר לחפש בעיות. שתואמים למפתח מותאם אישית.
כשבודקים בעיה ספציפית במסוף, אפשר לראות את המפתחות המותאמים אישית המשויכים לכל אירוע (כרטיסיית המשנה Keys) ואפילו לסנן את האירועים לפי מפתחות מותאמים אישית (תפריט Filter בחלק העליון של הדף).
משתמשים בשיטת המכונה setCustomKey
כדי להגדיר צמדי מפתח/ערך. שימו לב
יש עומס יתר על setCustomKey
כדי שהפרמטר value
יוכל לקבל פרימיטיביות
או ארגומנט String
. הנה כמה דוגמאות:
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("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("current_level", 3) key("last_UI_action", "logged_in") }
Java
FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCustomKey("current_level", 3); crashlytics.setCustomKey("last_UI_action", "logged_in");
כדי להוסיף צמדי מפתח/ערך בכמות גדולה, מעבירים מופע של CustomKeysAndValues
לשיטת המופע setCustomKeys
:
Kotlin+KTX
ב-Kotlin, הפונקציונליות הקיימת פשוטה יותר משימוש ב-builder 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) }
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);
הוספת הודעות יומן בהתאמה אישית
כדי לקבל הקשר נוסף לגבי האירועים שהובילו לקריסה, אפשר להוסיף לאפליקציה יומני Crashlytics מותאמים אישית. Crashlytics משייך את היומנים לנתוני הקריסה ומציג אותם בדף Crashlytics במסוף Firebase, בכרטיסייה יומנים.
אפשר להיעזר בlog
כדי לזהות בעיות. לדוגמה:
Kotlin+KTX
Firebase.crashlytics.log("message")
Java
FirebaseCrashlytics.getInstance().log("message");
הגדרה של מזהי משתמשים
כדי לאבחן בעיה, לרוב כדאי לדעת אילו מהמשתמשים נתקלו בקריסה מסוימת. Crashlytics כולל דרך לזהות משתמשים בעילום שם בדוחות על קריסות.
כדי להוסיף מזהי משתמשים לדוחות, צריך להקצות לכל משתמש מזהה ייחודי מספר מזהה, אסימון או ערך מגובב:
Kotlin+KTX
Firebase.crashlytics.setUserId("user123456789")
Java
FirebaseCrashlytics.getInstance().setUserId("user123456789");
אם תצטרכו למחוק מזהה משתמש אחרי שתגדירו אותו, תוכלו לאפס את הערך למחרוזת ריקה. ניקוי מזהה משתמש לא מסיר מזהה קיים רשומות Crashlytics. אם אתם צריכים למחוק רשומות שמשויכות למזהה משתמש, פנו לתמיכה של Firebase.
(Android NDK בלבד) הוספת מטא-נתונים לדוחות קריסה של NDK
אפשר גם לכלול את הכותרת crashlytics.h
בקוד C++ כדי להוסיף
מטא-נתונים לדוחות קריסה של NDK, כמו מפתחות מותאמים אישית,
יומנים מותאמים אישית,
מזהי משתמשים. כל האפשרויות האלה מתוארות
הדף הזה שלמעלה.
crashlytics.h
זמין בתור ספריית C++ לכותרות בלבד ב-
מאגר GitHub של Firebase Android SDK.
קוראים את התגובות בקובץ הכותרת כדי לקבל הוראות לשימוש בממשקי ה-API של NDK C++.
הכללת דוחות GWP-ASan כדי לנפות באגים בבעיות זיכרון
האפליקציה Crashlytics יכולה לעזור לך לנפות באגים בקריסות שנגרמו עקב שגיאות זיכרון נייטיב על ידי איסוף דוחות של GWP-ASan. שגיאות שקשורות לזיכרון יכולות להיות קשורות לזיהום זיכרון באפליקציה, שהיא הסיבה העיקרית לחולשות באבטחת האפליקציה.
אפשר להציג את הנתונים האלה בדוח חדש של 'דוח קריסות של הזיכרון' Tab בזמן הלחיצה לפרטים של הבעיה Crashlytics לוח הבקרה.
אפשר גם להשתמש ב'דוח GWP-ASan' החדש אות וסינון כדי להציג במהירות את כל הבעיות בנתונים האלה.
כדי לקבל דוחות זיכרון של GWP-ASan, צריך להפעיל את GWP-ASan באופן מפורש באפליקציה ולהשתמש ב-SDK של Crashlytics עבור NDK מגרסה 18.3.6 ואילך (Firebase BoM מגרסה 31.3.0 ואילך). אפשר לבדוק את ההגדרה של GWP-ASan באמצעות קוד יליד לדוגמה במסמכי העזרה של Android.
דיווח על חריגות לא קטלניות
בנוסף לדיווח אוטומטי על קריסות באפליקציה, Crashlytics מאפשרת לתעד חריגות לא קטלניות ולשלוח אותן בפעם הבאה שהאפליקציה מופעלת.
משתמשים בשיטה recordException
כדי לתעד חריגים לא חמורים באפליקציה
catch
חסימות. לדוגמה:
Kotlin+KTX
try { methodThatThrows() } catch (e: Exception) { Firebase.crashlytics.recordException(e) // handle your exception here }
Java
try { methodThatThrows(); } catch (Exception e) { FirebaseCrashlytics.getInstance().recordException(e); // handle your exception here }
כל החריגות שתועדו מופיעות כבעיות לא קטלניות במסוף Firebase. סיכום הבעיה מכיל את כל פרטי המצב שאתם מקבלים בדרך כלל מקריסות, יחד עם פירוט לפי גרסת Android ומכשיר חומרה.
Crashlytics מעבד חריגים בשרשור ייעודי ברקע לצורך לצמצם את ההשפעה על הביצועים של האפליקציה. כדי לצמצם את הרשת של המשתמשים תנועה, Crashlytics קבוצות תועדו חריגים יחד ושולחות להם את בפעם הבאה שהאפליקציה תופעל.
קבלת יומנים של נתיבי ניווט
יומני נתיבי ניווט עוזרים לך להבין טוב יותר את האינטראקציות שמשתמש שהובילו לקריסה באפליקציה, לאירוע לא קטלני או ל-ANR. היומנים האלה יכולים לעזור לכם לנסות לשחזר בעיה ולפתור אותה.
יומני מיקומים באתר מופעלים על ידי Google Analytics, לכן כדי לקבל יומני מיקומים באתר, צריך להפעיל את Google Analytics לפרויקט Firebase שלכם הוספה של Firebase SDK for Google Analytics לאפליקציה. לאחר העמידה בדרישות האלה, יומני המיקומים באתר מתועדים באופן אוטומטי כלול בנתוני אירוע בכרטיסייה יומנים כאשר מציגים את הפרטים של בעיה.
ערכת ה-SDK של Analytics רושמת באופן אוטומטי את האירוע screen_view
, וכך מאפשרת ליומנים של נתיב הניווט להציג רשימה של המסכים שנצפו לפני האירוע של קריסה, אירוע לא קטלני או אירוע ANR. יומן נתיבי ניווט screen_view
מכיל
firebase_screen_class
.
יומני המיקומים באתר מאוכלסים גם אירועים מותאמים אישית שאתם מתעדים באופן ידני במסגרת האירוע סשן, כולל נתוני הפרמטר של האירוע. הנתונים האלה יכולים לעזור להציג סדרה מפעולות המשתמש שהובילו לקריסה, לאירוע לא קטלני או לאירוע ANR.
לתשומת ליבכם: אתם יכולים לשלוט באיסוף ובשימוש בנתוני Google Analytics, כולל הנתונים שמאכלסים את יומני הלחם.
הפעלת דיווח על הסכמה
כברירת מחדל, Crashlytics אוסף באופן אוטומטי דוחות קריסה מכל המשתמשים באפליקציה. כדי לתת למשתמשים שליטה רבה יותר על הנתונים שהם שולחים, אפשר להפעיל דיווח על הסכמה מפורשת על ידי השבתת הדיווח האוטומטי ושליחת נתונים אל Crashlytics רק כשבוחרים בכך בקוד:
בבלוק
application
בקובץAndroidManifest.xml
, מוסיפים תגmeta-data
כדי להשבית את האיסוף האוטומטי:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
הפעלת איסוף למשתמשים נבחרים באמצעות קריאה לנתוני Crashlytics שינוי מברירת המחדל בזמן הריצה. ערך השינוי נשאר קבוע בכל ההשקות של האפליקציה כדי לאפשר ל-Crashlytics לאסוף דוחות באופן אוטומטי. כדי לבטל את ההסכמה של דיווח הקריסה האוטומטי, מעבירים את
false
כערך הביטול. כשההגדרה מוגדרת עדfalse
, הערך החדש לא יחול עד ההפעלה הבאה של האפליקציה.Kotlin+KTX
Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)
Java
FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);
ניהול הנתונים של תובנות לגבי קריסות
התכונה 'תובנות לגבי קריסות' עוזרת לכם לפתור בעיות על ידי השוואה של נתוני המעקב אחרי סטאק (stack) שהוסרו מהם פרטי הזיהוי לנתוני מעקב מאפליקציות אחרות ב-Firebase, ומציינת אם הבעיה היא חלק ממגמה רחבה יותר. הכלי 'תובנות לגבי הקריסה' מספק משאבים לבעיות רבות כדי לעזור לכם לנפות את הבאגים שגרמו לקריסה.
התכונה 'תובנות לגבי קריסות' משתמשת בנתוני קריסות שנצברו כדי לזהות מגמות נפוצות של יציבות. אם לא רוצים לשתף את נתוני האפליקציה, אפשר לבטל את ההסכמה לשימוש ב'תובנות לגבי הקריסה'. בתפריט Crash Insights בראש רשימת הבעיות ב-Crashlytics במסוף Firebase.