Crash 설정

iOS Crash SDK 설정 방법을 한눈에 확인하실 수 있습니다

1. 상세 설정

수집 서버 설정

설치형으로 진행 된 고객사에서는 반드시 이 부분 설정이 필요합니다.

IMQA Crash 프레임워크가 수집하는 데이터를 보내는 수집 서버를 별도로 설정하실 수 있습니다. 기본적으로는 SaaS 서비스를 이용하는 고객은 별도 설정이 필요하지 않습니다.

Objective-C 설정 방법

AppDelegate.m
NSString* imqaUrl = @"https://custom-url";
IMQACrashConfiguration* crashConfig = [[IMQACrashConfiguration alloc] initWithApiKey:PROJECT_KEY];

IMQACrashEndpointConfiguration* endpoint = [[IMQACrashEndpointConfiguration alloc] init];
endpoint.notify = [imqaUrl stringByAppendingString:@"/cocoa/crash/send"];
endpoint.sessions = [imqaUrl stringByAppendingString:@"/cocoa/session"];
crashConfig.endpoints = endpoint;

Swift 설정 방법

AppDelegate.swift
let imqaUrl = "https://custom-url"
let crashConfig = IMQACrashConfiguration("<PROJECT_KEY>")
crashConfig.endpoints = IMQACrashEndpointConfiguration(
                                 notify: imqaUrl + "/cocoa/crash/send",
                                 sessions: imqaUrl + "/cocoa/session")

2. 커스텀 에러 보내기

IMQA Crash는 원하는 Custom Error를 직접 보내실 수 있습니다. 각종 네트워크 에러나 수집하고 싶은 Error는 NSError를 통해 IMQA 서버에 직접 보내 트레킹 하실 수 있습니다.

Objective-C 설정 방법

AppDelegate.m
#import <IMQACrashAgent/IMQACrash.h>

NSError* custom_error = [NSError errorWithDomain:@"custom_error" code:404 userInfo:NULL];
[IMQACrash notifyError:custom_error];

Swift 설정 방법

AppDelegate.swift
let custom_error = NSError(domain: "custom error", code: 404, userInfo: nil)
IMQACrash.notifyError(custom_error)

3. Custom Web Crash 발생

IMQA Webview Agent 에서는 상세한 웹 에러 분석을 위해 원하는 에러 메시지를 지정하여 사용자 정의 에러를 수집할 수 있습니다.

Webview Crash 수집을 위해서는 ImqaBridgeCrash 를 추가해 주어야 합니다. ‘iOS > MPM 설정 > WKWebView 설정 > iOS 프로젝트 설정'을 참고하세요.

사용자 정의 에러 생성

IMQA Crash는 사용자가 정의한 에러를 감지하여 수집합니다.

다른 에러 일지라도 같은 에러 타입일 경우, 동일 에러로 인식하여 에러가 누적될 경우가 생길 수 있습니다.

사용자 정의 에러 메시지 지정

WebView에서 수집하는 기본 에러 메시지를 원하는 에러 메시지로 변경하여 수집할 수 있습니다. 상세한 웹 에러 분석을 위해 에러 메시지를 지정하는 것을 권장드립니다.

에러 메시지를 지정하는 경우, 같은 에러 타입일지라도 다른 에러로 수집됩니다.

사용자 정의 에러 수집할 js 파일
...
// try catch를 사용할 경우
try {
	...
}
catch(e){
	throw new Error("사용자가 지정한 에러 메시지");
}

// 기본 Error를 생성할 경우
new Error("사용자가 지정한 에러 메시지");

아래와 같이 IMQA Crash 서비스에서 웹 크래시를 상세한 정보와 함께 확인할 수 있습니다.

❶ 캐치된 에러 인스턴스 웹뷰에서 에러가 생성되었을 경우 해당 에러의 캐치된 에러 인스턴스명을 표시합니다.

❷ 사용자 정의 에러 메시지 특정 에러 타입 에러가 생성될 때 사용자가 지정한 메시지를 표시합니다.

throw new Error("사용자가 지정한 에러 메시지");

❸ 에러 타입 / 코드 라인 넘버 웹뷰 에러의 타입과 해당 에러의 라인 넘버를 확인 할 수 있습니다.

에러 타입설명

Error

사용자가 설정한 에러 타입입니다.

EvalError

eval()에서 발생하는 오류입니다.

RangeError

변수의 유효한 범위를 벗어났을 경우 생성되는 오류입니다.

ReferenceError

잘못된 참조를 했을 경우 생성되는 오류입니다.

SyntaxError

잘못된 구문이 존재하는 경우 오류입니다.

TypeError

유효한 자료형이 아닐 경우 해당 타입의 오류입니다.

URIError

encodeURI()decodeURI() 함수에 부적절한 매개변수를 넘겨준 경우 생성되는 오류입니다.

AggregateError

여러 오류를 하나의 오류로 감싸는 오류 형태입니다.

4. dSYM 설정

iOS의 Symbolication(기호화) 적용이 된 앱의 경우, dSYM 설정을 통해 클래스 명과 함수 명을 확인할 수 있습니다.

매핑 파일 업로드 1. [파일 선택]을 클릭하여 ‘dSYM’ 패키지 안의 바이너리 파일을 선택합니다.

2. 적용할 앱 버전을 입력하고 [등록]을 클릭합니다. 3. 데이터의 클래스 명과 함수 명을 IMQA에서 확인할 수 있습니다.

등록된 매핑 파일 등록된 매핑 파일과 적용된 앱 버전, 업로드 시간을 확인할 수 있습니다.

매핑 파일 관리 [삭제] 아이콘을 클릭하면 해당 매핑 파일을 삭제합니다.

최신 앱 버전이 릴리즈 된 경우, 해당 버전에서 발생한 크래시 정보를 보기 위해서는 동일한 앱 버전의 매핑 파일을 추가 등록해 주세요.

Last updated