에러 상세
Last updated
Last updated
IMQA Crash 에러 상세는 특정 에러가 어떤 앱 버전에서 얼마나 발생했고, 어떤 사용자 환경에서 주로 발생했는지 분석할 수 있습니다. 호출 스택과 에러 발생 경로 등을 확인하고 관리자는 해당 에러에 태그를 달거나 처리 과정을 기록, 확인할 수 있습니다.
통합 에러 상세의 경우 통합적 관점에서 에러를 분석할 수 있습니다. 누적 발생이 많았던 에러에 대한 인사이트를 얻을 수 있습니다. 사용자별 에러 상세의 경우 사용자 관점에서 에러를 분석할 수 있습니다. 특정 사용자에게 발생했던 에러에 대한 인사이트를 얻을 수 있습니다.
통합 에러 상세는 통합적 관점에서 에러 정보를 분석할 수 있습니다. 누적 발생이 많았던 에러에 대한 인사이트를 얻을 수 있습니다.
‘대시보드'와 ‘통합 에러 목록'에서 특정 에러를 클릭하면 이동할 수 있으며, IMQA Crash 통합 에러 상세는 다음과 같이 구성됩니다.
❶ 에러 정보 ❷ 에러 분포 ❸ 사용자 정보 ❹ 성능 정보 ❺ 태그 ❻ 호출 스택/인스턴스/이동 경로
에러 정보와 누적 횟수를 확인하고 관리자가 처리 과정을 기록, 확인할 수 있습니다.
❶ 에러 정보 에러 명, 클래스 명, 에러가 발생한 코드 라인 번호를 표시합니다.
최신 앱 버전에서 해당 에러가 신규 발생했을 경우, 복호화된 크래시 정보를 보기 위해서 해당 버전의 프로가드 설정이 필요합니다. 프로가드 설정에 대한 자세한 내용은 ‘Crash 사용하기 > 프로젝트 리스트 > 프로젝트 관리 > 프로가드 설정'을 참고하세요.
❷ 상태 담당자 확인 후 에러의 처리 상태를 변경할 수 있습니다. 클릭 시 상태를 변경할 수 있는 옵션을 표시합니다. 상태 변경 기준은 별도로 정해져 있지는 않으며 관리자 판단 후 아래와 같이 설정할 수 있습니다.
신규: 새롭게 발생된 에러일 경우
처리: 담당자 원인 파악 후 처리 중일 경우
완료: 담당자 처리 업무가 완료되었을 경우
마감: 관리자 확인 후 해당 에러 처리 업무를 완료시킬 경우
상태 변경을 진행한 에러는 동일 버전 또는 하위 버전에서 동일한 에러가 발생한 경우 별도로 상태 변경이 되지 않습니다. 다만, 상위 버전에서 동일한 에러가 발생한 경우 해당 에러와의 구분을 위해 신규 에러로 생성됩니다.
❸ 최신 버전/누적 해당 에러가 발생한 가장 최신 앱 버전 정보, 해당 에러의 발생 총 누적 횟수를 표시합니다.
❶ 캐치된 에러 인스턴스 웹뷰에서 에러가 생성되었을 경우 해당 에러의 캐치된 에러 인스턴스명을 표시합니다.
❷ 에러 메시지 특정 에러 타입 에러가 생성될 때 수집된 로그 메시지를 표시합니다.
❸ 에러 타입 / 코드 라인 넘버 웹뷰 에러의 타입과 해당 에러의 라인 넘버를 확인 할 수 있습니다.
Error
사용자가 설정한 에러 타입입니다.
EvalError
eval()에서 발생하는 오류입니다.
RangeError
변수의 유효한 범위를 벗어났을 경우 생성되는 오류입니다.
ReferenceError
잘못된 참조를 했을 경우 생성되는 오류입니다.
SyntaxError
잘못된 구문이 존재하는 경우 오류입니다.
TypeError
유효한 자료형이 아닐 경우 해당 타입의 오류입니다.
URIError
encodeURI()나 decodeURI() 함수에 부적절한 매개변수를 넘겨준 경우 생성되는 오류입니다.
AggregateError
여러 오류를 하나의 오류로 감싸는 오류 형태입니다.
최근 1주일간 해당 에러가 어떤 앱 버전에서 얼마나 발생했는지를 표시합니다. 발생 추이와 앱 버전별 비율을 확인할 수 있습니다.
앱 버전별 에러 발생률: 최근 1주일 동안 일별 에러 발생 수를 앱 버전별로 할당합니다.
Y축은 에러 발생 수를 의미합니다. 해당 에러 처리 후 최신 버전에도 재발생했는지 파악하기 용이합니다. 또한 특정 날짜에 에러 발생 수가 급격하게 증가했다면, 어떤 앱 버전에서 발생했는지 확인해보세요. 특정 앱 버전에서 지속적으로 에러가 발생할 경우 해당 앱 버전 사용자에게 업데이트를 권고할 수 있습니다.
최근 1주일간 해당 에러가 어떤 사용자 환경에서 많이 발생했는지를 표시합니다.
Wi-Fi/통신사*: 해당 에러가 발생한 사용자의 네트워크 환경을 표시합니다. Wi-Fi 환경과 통신사별로 확인할 수 있습니다.
최신 iOS 버전의 경우, Apple의 보안정책에 의해 통신사 정보 수집이 불가능합니다. 이 경우 통신사 정보가 표시되지 않거나, ‘Unknown’ 등으로 표시될 수 있습니다.
GPS: 해당 에러가 발생한 사용자의 GPS 상태를 표시합니다. ‘ON’과 ‘OFF’로 분류합니다.
앱 버전: 해당 에러가 발생한 사용자의 앱 버전을 표시합니다.
OS 버전: 해당 에러가 발생한 사용자의 OS 버전을 표시합니다.
디바이스: 해당 에러가 발생한 사용자의 디바이스를 표시합니다.
‘Unknown Device’는 디바이스 정보가 수집되지 않았음을 의미합니다. 맥과 같은 기기에서 시뮬레이터로 테스트 한 경우 등이 있습니다.
국가: 해당 에러가 발생한 사용자의 접속 국가를 표시합니다.
개별 사용자 환경은 'Crash 사용하기 > 에러 상세 > 호출 스택/인스턴스/이동 경로 > 인스턴스 > 상세'에서 확인할 수 있습니다.
해당 에러가 발생했을 때의 평균 자원 사용량을 표시합니다.
CPU 사용량: 해당 에러가 발생했을 때의 평균 CPU 사용량을 ‘%’로 표시합니다.
메모리 사용량: 해당 에러가 발생했을 때의 평균 메모리 사용량을 ‘MB’로 표시합니다.
개별 사용자 자원 사용량은 ‘통합 에러 상세 > 인스턴스 > 상세' 또는 ‘사용자별 에러 상세' 에서 확인할 수 있습니다.
해당 에러에 대한 추가 정보를 자유롭게 태그로 관리할 수 있습니다.
➀ 태그에 원하는 태그 이름을 입력하고 [+] 아이콘을 클릭합니다.
➁ 아래 빈 영역에 등록한 태그가 표시됩니다. [X] 아이콘을 클릭해서 삭제할 수 있습니다.
등록한 태그는 ‘통합 에러 목록' 페이지에서 검색어로 활용할 수 있습니다. 앱의 타겟 사용자 환경으로 태그를 관리하거나 발생 상황, 높은 자원 사용량 기록 등으로 활용해보세요. 하나의 에러에는 같은 이름의 태그를 등록할 수 없습니다.
크래시 발생 스택 정보와 전체 스레드의 스택을 확인할 수 있습니다. 개별 사용자의 상세 정보와 에러 발생 사용자들의 이동 경로를 분석할 수 있습니다.
크래시 발생 스택 정보와 전체 스레드의 스택을 확인하여 에러의 원인과 발생 위치를 확인할 수 있습니다. 스택에 관련된 정보를 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다.
소스코드가 난독화된 상태이고 매핑 파일 적용이 안된 경우, 메모리 주소값으로 표현된 코드 정보로 표시됩니다. 프로가드 설정 / dSYM 설정을 통해 각 버전의 매핑 파일로 복호화가 되었을 경우, 실제 소스의 파일 및 위치까지 정확히 표시됩니다. 프로가드 설정 / dSYM 설정은 ‘IMQA Crash 사용자 가이드 > 2.4. 프로젝트 관리 > 프로가드 설정 / dSYM 설정'을 참고하세요.
❶ 스택 필터 기본 크래시 정보를 가장 상단에 보여주고 있으며, 다른 Thread Call Stack에서 발생한 에러를 확인 할 수 있도록 다른 Stack 정보를 선택하여 보실 수 있습니다.
❷ 크래시 발생 스택 크래시 스택 정보 중 상위 스택 라인을 표시합니다.
❸ 전체 스택 전체 스레드의 스택 정보를 표시합니다. 이를 통해 보다 정확하게 에러의 원인을 파악하는 데에 참고할 수 있습니다.
❹ 원본 다운로드 스택에 관련된 정보를 ‘.txt’ 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다. [원본 다운로드]를 클릭하면 ‘stacktrace.txt’ 파일을 ‘Download’ 폴더에 저장합니다.
크래시가 발생한 사용자 정보를 확인할 수 있습니다. 개별 사용자의 LogCat(로그켓, 로그 상세 정보)과 화면 이동 경로, 사용자 환경에 대한 상세 정보를 확인할 수 있습니다.
❶ 사용자 정보 개별 사용자의 IP 주소, 앱 버전, 디바이스, 국가 정보를 표시하고 로그켓, 이동 경로, 상세 정보를 팝업으로 확인할 수 있습니다.
❷ 로그켓 *안드로이드 앱 전용 안드로이드 앱의 경우 로그켓 정보를 확인할 수 있습니다. 개별 사용자 항목에서 로그켓 [보기]를 클릭하면 로그켓 정보 팝업이 표시됩니다.
로그켓은 안드로이드 상세 로그 정보를 의미하며, 에러 스택 정보로 파악하지 못한 문제를 크래시 발생 시점 이전에 기록된 로그 정보를 보여주고 있습니다.
❸ 상세 사용자의 디바이스, 앱 정보, OS 등의 환경 정보를 자세하게 확인할 수 있습니다. 개별 사용자 항목에서 상세 [보기]를 클릭하면 상세 정보 팝업이 표시됩니다.
사용자 정보: 해당 사용자의 이름, 고유ID, IP주소, 이메일 주소를 표시합니다.
사용자 정보는 별도로 SDK에서 제공하는 API를 통해 데이터를 제공하는 경우에만 조회가 가능합니다. 사용자 정보 설정은 ‘IMQA Crash 설치 가이드 > Custom User ID 등록'을 참고하세요.
디바이스*: 해당 사용자의 디바이스 관련 정보를 표시합니다.
최신 iOS 버전의 경우, Apple의 보안정책에 의해 통신사 정보 수집이 불가능합니다. 이 경우 통신사 정보가 표시되지 않거나, ‘Unknown’ 등으로 표시될 수 있습니다.
앱 정보: 해당 사용자의 앱 실행 시작시간, 버전 등의 정보를 표시합니다.
OS 정보: 해당 사용자의 플랫폼, OS 버전, 루팅 여부 등을 표시합니다.
SDK 정보: 해당 사용자의 앱에 설치된 IMQA SDK 버전을 표시합니다.
사용자 정의 로그*: 별도로 SDK에서 제공되는 API를 통해 로그 정보를 전송한 경우에 제공한 로그 정보를 표시합니다.
사용자 정의 키*: 별도로 SDK에서 제공되는 API를 통해 키/값 정보를 전송한 경우에 제공한 키/값 정보를 표시합니다.
현재 사용자 정의 로그 / 사용자 정의 키 등록은 안드로이드 SDK에서만 지원합니다.
❹ 사용자 행동분석 특정 크래시가 발생한 사용자가 어떤 흐름으로 앱을 이용했는지 행동분석으로 연계하여 추적 조회할 수 있습니다. 크래시 정보를 확인하고, 크래시 발생 전후 원인 분석이 가능합니다. 개별 사용자 항목에서 [사용자 행동분석]을 클릭하면 해당 사용자의 앱 실행 ~ 앱 종료까지의 화면 흐름을 ‘행동분석' 페이지를 통해 확인할 수 있습니다.
크래시 정보로 연계한 ‘행동분석' 페이지에서 데이터가 표시되지 않는 경우, 아래의 경우에 해당할 수 있습니다.
1. MPM 성능 데이터 수집 대기 또는 처리 중일 경우
2. 크래시가 발생한 ‘화면’의 화면 로딩 정보가 수집되지 않았을 경우
1. MPM 성능 데이터 수집 대기 또는 처리 중일 경우 IMQA Crash는 크래시 발생 시 데이터를 즉시 수집하지만 IMQA MPM은 수집 주기에 따라 데이터를 수집하고 있어, 사용자 행동 흐름 데이터 수집 및 처리에 다소 시간이 소요될 수 있습니다. 잠시 후 다시 확인해 주세요.
2. 크래시가 발생한 ‘화면'의 화면 로딩 정보가 수집되지 않았을 경우 IMQA Crash는 크래시가 발생한 ‘화면'의 정보를 수집합니다. IMQA MPM은 ‘화면'과 화면 로딩 정보를 함께 수집합니다. 만약 해당 ‘화면'의 화면 로딩 정보가 수집되지 않았을 경우, 사용자 행동 흐름 상 ‘화면' 정보가 없어 데이터가 표시되지 않을 수 있습니다.
해당 에러가 발생했던 사용자들의 이동 경로를 확인할 수 있습니다.
사용자들의 에러 발생 지점 직전 5단계의 이동 경로를 표시합니다. 가장 방문 빈도가 높은 경로와 에러 발생 지점까지 어떤 경로들이 있었는지를 Sankey 다이어그램을 통해 확인할 수 있습니다. Sankey 다이어그램은 전체 흐름에서 가장 주된, 중요한 흐름을 찾을 때 유용합니다.
경로 단위 및 화면-화면 단위로 확인할 수 있으며, 화면과 화면 사이 영역에 마우스 포인터를 올리면 ‘순서:화면 → 순서:화면: 이동 수’로 툴팁이 표시됩니다.
이동 수: 특정 화면에서 특정 화면으로 이동한 사용자의 데이터 수를 카운트합니다.
에러 발생 지점까지의 특정 경로가 크게 강조될 경우, 해당 경로로 이동하는 많은 사용자가 문제를 겪고 있음으로 해석할 수 있습니다. 해당 경로가 앱의 목표 경로라면 빠르게 문제를 해결해야 함을 의미합니다.
사용자별 에러 상세는 사용자 관점에서 에러를 분석할 수 있습니다. 특정 사용자에게 발생했던 에러에 대한 인사이트를 얻을 수 있습니다.
‘사용자별 에러 목록'과 MPM 행동분석을 통해 연계한 ‘행동분석별 에러 목록'에서 특정 에러를 클릭하면 이동할 수 있으며, IMQA Crash 사용자별 에러 상세는 다음과 같이 구성됩니다.
❶ 에러 정보 ❷ 이슈 정보/사용자 정보 ❸ 호출 스택
특정 사용자에게 발생한 에러 정보를 확인할 수 있습니다.
에러 명, 클래스 명, 에러가 발생한 코드 라인 번호를 표시합니다.
최신 앱 버전에서 해당 에러가 신규 발생했을 경우, 복호화된 크래시 정보를 보기 위해서 해당 버전의 프로가드 설정이 필요합니다. 프로가드 설정에 대한 자세한 내용은 ‘IMQA Crash 사용자 가이드 > 2.4. 프로젝트 관리 > 프로가드 설정'을 참고하세요.
❶ 캐치된 에러 인스턴스 웹뷰에서 에러가 생성되었을 경우 해당 에러의 캐치된 에러 인스턴스명을 표시합니다.
❷ 에러 메시지 특정 에러 타입 에러가 생성될 때 수집된 로그 메시지를 표시합니다.
❸ 에러 타입 / 코드 라인 넘버 웹뷰 에러의 타입과 해당 에러의 라인 넘버를 확인 할 수 있습니다.
Error
사용자가 설정한 에러 타입입니다.
EvalError
eval()에서 발생하는 오류입니다.
RangeError
변수의 유효한 범위를 벗어났을 경우 생성되는 오류입니다.
ReferenceError
잘못된 참조를 했을 경우 생성되는 오류입니다.
SyntaxError
잘못된 구문이 존재하는 경우 오류입니다.
TypeError
유효한 자료형이 아닐 경우 해당 타입의 오류입니다.
URIError
encodeURI()나 decodeURI() 함수에 부적절한 매개변수를 넘겨준 경우 생성되는 오류입니다.
AggregateError
여러 오류를 하나의 오류로 감싸는 오류 형태입니다.
해당 에러의 기본 정보와 사용자 환경 정보를 확인할 수 있습니다.
❶ 이슈 정보
발생일시: 해당 에러의 발생 일시를 표시합니다.
화면명: 해당 에러가 발생한 화면명을 표시합니다.
현재 웹 크래시 발생 화면명은 네이티브 화면 정보로 표시됩니다.
상태: 해당 에러 상위 통합 에러의 ‘통합 에러 상세’ 페이지에서 설정한 상태를 표시합니다.
❷ 사용자 정보
사용자 ID: SDK에서 사전 정의한 사용자의 ID 정보가 수집되었을 경우 해당 정보로 표시합니다. 설정한 사용자 정보가 없을 경우 ‘-’ 표시됩니다.
IP 주소: 해당 에러가 발생한 사용자의 GeoIP 주소를 표시합니다.
디바이스: 해당 에러가 발생한 사용자의 디바이스를 표시합니다.
‘Unknown Device’는 디바이스 정보가 수집되지 않았음을 의미합니다. 맥과 같은 기기에서 시뮬레이터로 테스트 한 경우 등이 있습니다.
앱 버전: 해당 에러가 발생한 사용자의 앱 버전을 표시합니다.
OS 버전: 해당 에러가 발생한 사용자의 OS 버전을 표시합니다.
Wi-Fi/통신사*: 해당 에러가 발생한 사용자의 네트워크 환경을 표시합니다. Wi-Fi 환경과 통신사별로 확인할 수 있습니다.
최신 iOS 버전의 경우, Apple의 보안정책에 의해 통신사 정보 수집이 불가능합니다. 이 경우 통신사 정보가 표시되지 않거나, ‘Unknown’ 등으로 표시될 수 있습니다.
국가*: 해당 에러가 발생한 사용자의 접속 국가를 표시합니다.
❸ 상세 사용자의 디바이스, 앱 정보, OS 등의 환경 정보를 자세하게 확인할 수 있습니다. 사용자 정보에서 [상세]를 클릭하면 상세정보 팝업이 표시됩니다.
사용자별 에러 상세 정보에 대한 자세한 내용은 ‘IMQA Crash 사용자 가이드 > 1. 통합 에러 상세 > 인스턴스 > 상세'를 참고하세요.
❹ 사용자 행동분석 특정 크래시가 발생한 사용자가 어떤 흐름으로 앱을 이용했는지 행동분석으로 연계하여 추적 조회할 수 있습니다. 크래시 정보를 확인하고, 크래시 발생 전후 원인 분석이 가능합니다. 사용자 정보에서 [사용자 행동분석]을 클릭하면 해당 사용자의 앱 실행 ~ 앱 종료까지의 화면 흐름을 ‘행동분석' 페이지를 통해 확인할 수 있습니다.
사용자별 사용자 행동분석에 대한 자세한 내용은 ‘IMQA Crash 사용자 가이드 > 1. 통합 에러 상세 > 인스턴스 > 사용자 행동분석'을 참고하세요.
크래시 발생 스택 정보와 전체 스레드의 스택을 확인하여 에러의 원인과 발생 위치를 확인할 수 있습니다. 스택에 관련된 정보를 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다.
소스코드가 난독화된 상태이고 매핑 파일 적용이 안된 경우, 메모리 주소값으로 표현된 코드 정보로 표시됩니다. 프로가드 설정 / dSYM 설정을 통해 각 버전의 매핑 파일로 복호화가 되었을 경우, 실제 소스의 파일 및 위치까지 정확히 표시됩니다. 프로가드 설정 / dSYM 설정은 ‘IMQA Crash 사용자 가이드 > 4. 프로젝트 관리 > 프로가드 설정 / dSYM 설정'을 참고하세요.
현재 사용자별 에러 상세 호출 스택 정보는 해당 에러 상위 ‘통합 에러 상세 > 호출 스택’ 정보와 동일합니다.
❶ 스택 필터 기본 크래시 정보를 가장 상단에 보여주고 있으며, 다른 Thread Call Stack에서 발생한 에러를 확인 할 수 있도록 다른 Stack 정보를 선택하여 보실 수 있습니다.
❷ 크래시 발생 스택 크래시 스택 정보 중 상위 스택 라인을 표시합니다.
❸ 스택 정보 스택 정보를 표시합니다. 이를 통해 보다 정확하게 에러의 원인을 파악하는 데에 참고할 수 있습니다.
❹ 로그켓 *안드로이드 앱 전용 안드로이드 앱의 경우 로그켓 정보를 확인할 수 있습니다. [로그켓]을 클릭하면 로그켓 정보 팝업이 표시됩니다. 로그켓은 안드로이드 상세 로그 정보를 의미하며, 에러 스택 정보로 파악하지 못한 문제를 크래시 발생 시점 이전에 기록된 로그 정보를 보여주고 있습니다.
❺ 원본 다운로드 선택한 스레드의 스택 정보를 ‘.txt’ 파일 형태로 다운로드하여 구성원과 공유할 수 있습니다. [원본 다운로드]를 클릭하면 ‘스레드명_stacktrace.txt’ 파일을 ‘Download’ 폴더에 저장합니다.