비정상 종료 및 예외 - iOS SDK

이 문서에서는 iOS v3용 Google 애널리틱스 SDK를 사용한 비정상 종료 및 예외 측정에 대해 개략적으로 설명합니다.

개요

비정상 종료 및 예외 측정을 사용하면 앱에서 발생하는 비정상 종료와 예외의 수와 유형을 측정할 수 있습니다. 예외의 필드는 다음과 같습니다.

필드 이름 추적기 필드 유형 필수 설명
설명 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.
}

포착되지 않은 예외 측정

포착되지 않은 예외는 앱에서 런타임에 예기치 않은 조건이 발생하여 치명적인 경우가 많아서 앱이 비정상 종료되는 경우를 나타냅니다. 포착되지 않은 예외는 trackUncaughtExceptions 속성을 YES로 설정하여 Google 애널리틱스로 자동으로 전송할 수 있습니다. 예:

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

자동 예외 측정을 사용할 때는 다음 사항에 유의하세요.

  • 자동 예외 측정을 사용하여 전송된 모든 예외는 Google 애널리틱스에서 심각한 것으로 보고됩니다.
  • 기본적으로 설명 필드는 예외 유형, 클래스 이름, 메서드 이름, 스레드 이름을 사용하여 자동으로 설정됩니다.