이 문서에서는 iOS v3용 Google 애널리틱스 SDK를 사용한 비정상 종료 및 예외 측정에 대해 개략적으로 설명합니다.
개요
비정상 종료 및 예외 측정을 사용하면 앱에서 발생하는 비정상 종료와 예외의 수와 유형을 측정할 수 있습니다. 예외의 필드는 다음과 같습니다.
필드 이름 | 추적기 필드 | 유형 | 필수 | 설명 |
---|---|---|---|---|
설명 |
|
|
아니요 | 예외에 관한 설명입니다 (영문 기준 최대 100자). nil 이 허용됩니다. |
isFatal |
|
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. idtracker = [[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 애널리틱스에서 심각한 것으로 보고됩니다.
- 기본적으로 설명 필드는 예외 유형, 클래스 이름, 메서드 이름, 스레드 이름을 사용하여 자동으로 설정됩니다.