Crash 설정
IMQA Crash는 다양한 옵션이 존재하며, 사용자가 원하는 설정을 추가하여 더욱 자세한 크래시 리포트를 받아 보실 수 있습니다.
1. Custom Crash 발생
IMQA Crash Agent 에서는 다음과 같은 사용자 정의 에러를 수집할 수 있습니다. Exception 객체와 함께 특정 태그, 에러의 등급을 지정할 수 있습니다.
에러 랭크의 경우 별도로 정해져있지는 않으며 앱의 구성에 따라 변경하여 사용가능합니다.
Rank | Description |
---|---|
ErrorRank.Unhandle | 기본이 되는 에러 등급으로 처리하지 못한 크래시에 사용 |
ErrorRank.Critical | 앱에 상당한 영향을 주는 크래시 일 경우 |
ErrorRank.Major | 앱에 영향이 있는 크래시 일 경우 |
ErrorRank.Minor | 앱에 큰 영향이 없는 크래시 일 경우 |
2. Custom Web Crash 발생
IMQA Webview Agent 에서는 상세한 웹 에러 분석을 위해 원하는 에러 메시지를 지정하여 사용자 정의 에러를 수집할 수 있습니다.
Webview Crash 수집을 위해서는 CrashWebviewBridge 를 추가해 주어야 합니다. ‘Android > MPM 설정 > WebView HTTP 요청 > Android Agent 설정'을 참고하세요.
사용자 정의 에러 생성
IMQA Crash는 사용자가 정의한 에러를 감지하여 수집합니다.
다른 에러 일지라도 같은 에러 타입일 경우, 동일 에러로 인식하여 에러가 누적될 경우가 생길 수 있습니다
사용자 정의 에러 메시지 지정
WebView에서 수집하는 기본 에러 메시지를 원하는 에러 메시지로 변경하여 수집할 수 있습니다. 상세한 웹 에러 분석을 위해 에러 메시지를 지정하는 것을 권장드립니다.
에러 메시지를 지정하는 경우, 같은 에러 타입일지라도 다른 에러로 수집됩니다.
아래와 같이 IMQA Crash 서비스에서 웹 크래시를 상세한 정보와 함께 확인할 수 있습니다.
❶ 캐치된 에러 인스턴스 웹뷰에서 에러가 생성되었을 경우 해당 에러의 캐치된 에러 인스턴스명을 표시합니다.
❷ 사용자 정의 에러 메시지 특정 에러 타입 에러가 생성될 때 사용자가 지정한 메시지를 표시합니다.
❸ 에러 타입 / 코드 라인 넘버 웹뷰 에러의 타입과 해당 에러의 라인 넘버를 확인 할 수 있습니다.
에러 타입 | 설명 |
---|---|
Error | 사용자가 설정한 에러 타입입니다. |
EvalError | eval()에서 발생하는 오류입니다. |
RangeError | 변수의 유효한 범위를 벗어났을 경우 생성되는 오류입니다. |
ReferenceError | 잘못된 참조를 했을 경우 생성되는 오류입니다. |
SyntaxError | 잘못된 구문이 존재하는 경우 오류입니다. |
TypeError | 유효한 자료형이 아닐 경우 해당 타입의 오류입니다. |
URIError | encodeURI()나 decodeURI() 함수에 부적절한 매개변수를 넘겨준 경우 생성되는 오류입니다. |
AggregateError | 여러 오류를 하나의 오류로 감싸는 오류 형태입니다. |
3. EventPath 등
EventPath는 사용자의 기기에서 앱이 어떤 경로로 동작하는지 파악하는 기능입니다. 이를 사용하기 위해서는 클래스에 EventPath 추적 코드를 넣어주어야 합니다. 추적코드에 ‘STEP’ 과 ‘LABEL’에 해당되는 내용을 넣어줍니다.
STEP | LABEL |
---|---|
수집할 콜스택의 단계, 해당 스텝의 클래스명, 함수이름, 호출 위치를 가지고 옵니다. | 수집된 EventPath 의 별칭, 크래시 정보 창에서 EventPath의 각 발생 위치를 별칭으로 보여줍니다. |
4. Custom User ID 등록
크래시 발생시 사용자를 구분하기 위한 커스텀한 ID를 부여할 수 있습니다. 유저 정보를 등록한 후에는 발생하는 크래시에서 사용자 정보가 포함되어 보여집니다.
Class Name | Method Name | Description |
---|---|---|
IdentifierCollector | setCustomUserId(STRING) | 사용자 ID를 등록합니다. |
IdentifierCollector | setCustomUserName(STRING) | 사용자 이름을 등록합니다. |
IdentifierCollector | setCustomUserMail(STRING) | 사용자 이메일을 등록합니다. |
5. Custom User Log/Key 등록
크래시가 발생하기 전에 원하는 로그를 개발자가 직접 추가로 남길 수 있습니다. (최대 100개)
Class Name | Method Name | Description |
---|---|---|
CustomLogCollector | log(STRING) | 로그를 일반 문자열로 남깁니다. |
CustomLogCollector | log(KEY, VALUE) | 로그를 키:값 형태로 남깁니다. |
6. 초기화 Option 추가
IMQAController 초기화 시 옵션을 지정할 수 있습니다. IMQA Crash 모드를 파라미터나 Option을 이용해 변경할 수 있습니다.
Class Name | Method Name | |
---|---|---|
IMQAOption | setDirectUploadFlag(BOOL) | 업로드 모드를 설정합니다. false 로 설정할 경우 debug mode 에서도 동작합니다. |
IMQAOption | setPrintLog(BOOL) | Log 출력 여부를 설정합니다. true 로 설정할 경우 IMQA 의 Log가 출력됩니다. |
IMQAOption | setAnrOn(BOOL) | ANR 을 모니터링 여부를 설정합니다. false 로 설정할 경우 ANR은 크래시 수집에서 제외됩니다. |
IMQAOption | setAnrTimeoutIntercal(int) | ANR 타임아웃이 발생하는 시간을 설정합니다. (milliseconds 단위) |
Last updated