התאם אישית את דוחות הקריסה של Firebase Crashlytics

בלוח המחוונים של Crashlytics, אתה יכול ללחוץ על בעיה ולקבל דוח אירועים מפורט. אתה יכול להתאים אישית את הדוחות האלה כדי לעזור לך להבין טוב יותר מה קורה באפליקציה שלך ואת הנסיבות סביב אירועים שדווחו ל-Crashlytics.

  • קבל אוטומטית יומני פירורי לחם אם האפליקציה שלך משתמשת ב-Firebase SDK עבור Google Analytics. יומנים אלה נותנים לך חשיפה לפעולות המשתמש המובילות לאירוע שנאסף על ידי Crashlytics באפליקציה שלך.

  • כבה את דיווח הקריסה האוטומטי והפעל את דיווח הסכמה עבור המשתמשים שלך. שים לב שכברירת מחדל, Crashlytics אוספת אוטומטית דוחות קריסה עבור כל משתמשי האפליקציה שלך.

הוסף מפתחות מותאמים אישית

מפתחות מותאמים אישית עוזרים לך לקבל את המצב הספציפי של האפליקציה שלך לקראת קריסה. אתה יכול לשייך צמדי מפתח/ערך שרירותיים לדוחות הקריסה שלך, ולאחר מכן להשתמש במפתחות המותאמים אישית כדי לחפש ולסנן דוחות קריסה במסוף Firebase.

  • בלוח המחוונים של Crashlytics , תוכל לחפש בעיות התואמות למפתח מותאם אישית.
  • כאשר אתה בודק בעיה ספציפית במסוף, אתה יכול להציג את המפתחות המותאמים אישית המשויכים לכל אירוע (כרטיסיית המשנה Keys ) ואפילו לסנן את האירועים לפי מפתחות מותאמים אישית (תפריט סינון בראש העמוד).

השתמש בשיטת 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")

Objective-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")

Objective-C

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

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

הוסף צמדי מפתח/ערך בכמות גדולה על ידי שימוש בשיטת setCustomKeysAndValues ​​עם NDictionary כפרמטר היחיד:

מָהִיר

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)

Objective-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 , תחת הכרטיסייה יומנים .

מָהִיר

השתמש log() או log(format:, arguments:) כדי לעזור באיתור בעיות. אם אתה רוצה לקבל פלט יומן שימושי עם הודעות, האובייקט שאתה מעביר ל- log() חייב להתאים למאפיין CustomStringConvertible . log() מחזירה את המאפיין description שאתה מגדיר עבור האובייקט. לדוגמה:

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.

Objective-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")

Objective-C

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

אם אי פעם תצטרך לנקות מזהה משתמש לאחר הגדרתו, אפס את הערך למחרוזת ריקה. ניקוי מזהה משתמש אינו מסיר רשומות Crashlytics קיימות. אם אתה צריך למחוק רשומות המשויכות למזהה משתמש, פנה לתמיכה של Firebase .

קבל יומני פירורי לחם

יומני פירורי לחם נותנים לך הבנה טובה יותר של האינטראקציות שהיו למשתמש עם האפליקציה שלך שהובילה לקריסה, לא קטלנית או לאירוע ANR. יומנים אלה יכולים להיות מועילים כאשר מנסים לשחזר ולתת באגים בבעיה.

יומני Breadcrumb מופעלים על ידי Google Analytics, אז כדי לקבל יומני Breadcrumb, עליך להפעיל את Google Analytics עבור פרויקט Firebase שלך ​​ולהוסיף את Firebase SDK עבור Google Analytics לאפליקציה שלך. לאחר עמידה בדרישות אלה, יומני פירורי לחם נכללים אוטומטית עם נתוני אירוע בכרטיסייה יומנים כאשר אתה מציג את הפרטים של בעיה.

ה-SDK של Analytics רושם אוטומטית את אירוע screen_view המאפשר ליומני ה-breadcrumb להציג רשימה של מסכים שנצפו לפני אירוע הקריסה, הלא קטלני או ה-ANR. יומן breadcrumb screen_view מכיל פרמטר firebase_screen_class .

יומני Breadcrumb מאוכלסים גם באירועים מותאמים אישית שאתה רושם באופן ידני במהלך ההפעלה של המשתמש, כולל נתוני הפרמטרים של האירוע. נתונים אלה יכולים לעזור להציג סדרה של פעולות משתמש המובילות לקריסה, לא קטלנית או אירוע ANR.

שים לב שאתה יכול לשלוט באיסוף ובשימוש בנתוני Google Analytics , הכוללים את הנתונים המאכלסים את יומני ה-breadcrumb.

אפשר דיווח על הסכמה

כברירת מחדל, Crashlytics אוספת אוטומטית דוחות קריסה עבור כל משתמשי האפליקציה שלך. כדי לתת למשתמשים שליטה רבה יותר על הנתונים שהם שולחים, תוכל להפעיל דיווח על הסכמה על ידי השבתת הדיווח האוטומטי ושליחת נתונים ל-Crashlytics רק כאשר תבחר בקוד שלך:

  1. כבה את האיסוף האוטומטי על ידי הוספת מפתח חדש לקובץ Info.plist שלך:

    • מפתח: FirebaseCrashlyticsCollectionEnabled
    • ערך: false
  2. אפשר איסוף עבור משתמשים נבחרים על ידי קריאה לעקיפה של איסוף הנתונים של Crashlytics בזמן ריצה. ערך העקיפה נמשך לאורך כל ההשקות של האפליקציה שלך כך ש-Crashlytics יכול לאסוף דוחות באופן אוטומטי.

    כדי לבטל את הסכמתך לדיווח על קריסה אוטומטי, העבר את false כערך העקיפה. כאשר מוגדר כ- false , הערך החדש אינו חל עד להרצה הבאה של האפליקציה.

    מָהִיר

    Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)

    Objective-C

    [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];

נהל נתוני Crash Insights

Crash Insights עוזר לך לפתור בעיות על ידי השוואת מעקבי הערימה האנונימיים שלך לעקבות מאפליקציות Firebase אחרות ומודיע לך אם הבעיה שלך היא חלק ממגמה גדולה יותר. עבור בעיות רבות, Crash Insights אפילו מספק משאבים שיעזרו לך לנפות באגים בקריסה.

Crash Insights משתמש בנתוני קריסה מצטברים כדי לזהות מגמות יציבות נפוצות. אם אתה מעדיף לא לשתף את הנתונים של האפליקציה שלך, תוכל לבטל את הסכמתך ל-Cash Insights מתפריט Crash Insights בראש רשימת הבעיות של Crashlytics במסוף Firebase .