קריסות וחריגים – iOS SDK

במסמך הזה מפורטת סקירה כללית של מדידת הקריסות והחריגות באמצעות Google Analytics SDK ל-iOS v2.

סקירה

מדידה של קריסות וחריגים מאפשרת למדוד את המספר והסוג של הקריסות והחריגים שמתרחשות באפליקציה. חריגות ב-Google Analytics כוללות:

  • NSString (אופציונלי) תיאור – תיאור של החריג (עד 100 תווים). מכבדים nil.
  • boolean isFatal – מציין אם החריגה הייתה חמורה. YES מציין מצב חמור.

נתוני הקריסה והחריגים זמינים בעיקר בדוח 'קריסה' ו'חריגים'.

חריגים נתפסו

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

כדי למדוד חריגים שזוהו, אפשר להוסיף את הערך sendException: לבלוק catch של הקוד לטיפול בחריגים.

בדוגמה הבאה, אפליקציה מנסה לטעון רשימה של ציונים גבוהים מהענן. אם פג הזמן הקצוב של הבקשה, אולי בגלל חיבור רשת איטי, נשלח את החריגה ל-Google Analytics לפני שנטפל בה עבור המשתמש:

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
    [tracker sendException:NO // Boolean indicates non-fatal exception.
            withDescription:@"Connection timout %d: %@", connectionError, errorDescription];
}

אפשר לאכלס באופן אוטומטי את שדה התיאור של חריגה עם השם והסיבה באמצעות sendException:withDescription:withNSException:, כמו בדוגמה הזו:

@try {
  NSArray *highScores = [self getHighScores];
}
@catch (NSException *exception) {
  [tracker sendException:NO withNSException:exception);
}

כדי לאכלס שגיאה באופן אוטומטי עם דומיין השגיאה, הקוד והתיאור, משתמשים ב-sendException:withDescription:withNSError: כפי שמתואר בהמשך:

NSError *error = nil;
if (![self updateHighScoresWithError:&error]) {
  [tracker sendException:NO withNSError:error);
}

מדידת חריגה שלא נתפסה

חריגים שלא תועדו מייצגים מקרים שבהם האפליקציה נתקלה בתנאים לא צפויים בזמן הריצה, ובמקרים רבים הם חמורים מאוד, וכתוצאה מכך האפליקציה קורסת. ניתן לשלוח ל-Google Analytics חריגים שלא זוהו באופן אוטומטי, על ידי הגדרת הנכס sendUncaughtExceptions ל-YES. אפשר לעשות זאת בצורה נוחה באמצעות השיטה application:didFinishLaunchingWithOptions של בעלי הגישה לאפליקציה:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [GAI sharedInstance].sendUncaughtExceptions = YES; // Enable 

  // ... the rest of your code, include other GAI properties you want to set.
}

כשמשתמשים במדידה אוטומטית של חריגות, חשוב לזכור:

  • כל החריגות שנשלחות באמצעות מדידת חריגות אוטומטיות מדווחים כקטלניות ב-Google Analytics.
  • שדה התיאור מאוכלס באופן אוטומטי באמצעות דוח הקריסות.