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

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

סקירה

מדידת הקריסות והחריגות מאפשרת למדוד את המספר והסוג של הקריסות והחריגים שמתרחשות באפליקציה, למעט במקרים הבאים:

שם השדה שדה מעקב סוג חובה תיאור
תיאור kGAIExDescription NSString לא תיאור של החריג (עד 100 תווים). מכבדים nil.
isFatal kGAIExFatal BOOL כן מציין אם החריגה הייתה חמורה. YES מציין מצב חמור.

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

חריגים נתפסו

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

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

/*
 * An app tries to load a list of high scores from the cloud. If the request
 * times out, an exception is sent to Google Analytics
 */
@try {

  // Request some scores from the network.
  NSArray *highScores = [self getHighScoresFromCloud];

}
@catch (NSException *exception) {

    // May return nil if a tracker has not already been initialized with a
    // property ID.
    id tracker = [[GAI sharedInstance] defaultTracker];

    [tracker send:[[GAIDictionaryBuilder
        createExceptionWithDescription:@"Connection timeout"  // Exception description. May be truncated to 100 chars.
                             withFatal:@NO] build]];  // isFatal (required). NO indicates non-fatal exception.
}

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

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

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[GAI sharedInstance] setTrackUncaughtExceptions:YES];
  return YES;
}

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

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