Crash and Exception Reporting 파악
Crash and Exception Reporting은 문제 데이터를 캡처하여 Unity Dashboard의 Cloud Diagnostics > Crash and Exception Reporting 섹션에 표시합니다.
크래시 및 예외 리포트는 크래시 스레드의 네이티브 스택 트레이스를 보여 줍니다. 크래시가 잡히지 않은 관리된 예외에 의해 발생한 경우 리포트는 예외가 발생한 근원의 관리된 스택 트레이스와 네이티브 스택 트레이스를 함께 표시합니다.
Crash and Exception Reporting이 캡처하는 문제 유형은 다음과 같습니다.
- 네이티브 크래시: 네이티브 크래시 리포트는 앱이 응답을 멈출 때 스택 트레이스와 기타 메타데이터를 캡처합니다. 대부분의 경우 이는 애플리케이션 네이티브(보통 C++) 레이어의 문제로 인한 것입니다.
- 관리된 예외: 관리된 예외 리포트는 애플리케이션의 관리되는(보통 C#) 레이어에서 처리되지 않은 예외로 인해 앱이 응답을 멈출 때 스택 트레이스와 기타 메타데이터를 캡처합니다.
Crash and Exception Reporting은 개별 문제 리포트를 하나의 문제 리포트로 집계합니다. 크래시 및 예외의 발생 빈도는 대시보드의 Occurrence 뷰에서 볼 수 있습니다.
크래시 및 예외 리포트를 보려면 Unity 에디터의 Cloud Diagnostics 패널로 이동하거나 브라우저 창에서 Unity Dashboard에 로그인하여 대시보드를 엽니다.
에디터에서 크래시 및 예외 리포트에 액세스하려면 다음 단계를 따릅니다.
- Unity 에디터에서 프로젝트를 엽니다.
- 메뉴 표시줄에서 Window > General > Services를 선택합니다.
- Services 창에서 Cloud Diagnostics를 선택합니다.
- Cloud Diagnostics 패널에서 Got to Dashboard를 선택합니다.
- 메인 내비게이션 메뉴에서 DevOps > Cloud Diagnostics > Crash and Exception Reporting으로 이동합니다.
대시보드에서 크래시 및 예외 리포트에 액세스하려면 다음 단계를 따릅니다.
- 브라우저에서 Unity Dashboard에 로그인합니다.
- 상단 내비게이션 메뉴의 프로젝트 선택자에서 Cloud Diagnostics에 연결된 프로젝트를 선택합니다.
- 프로젝트를 지정한 뒤 메인 내비게이션 메뉴에서 Cloud Diagnostics > Crash and Exception reports로 이동합니다.
크래시 및 예외 리포트 페이지 파악
Crash and Exception Reporting 페이지는 다음과 같은 세 가지 주요 부분으로 구성돼 있습니다.
- 개요 및 필터
- 발생 그래프
- 문제 목록
개요 및 필터
Crash and Exception Reporting 페이지 상단에서 리포트의 개요와 필터링 옵션을 봅니다.
페이지 상단의 리포트 총계는 계정에서 마지막 날 생성된 리포트 수와 리포트 사용에 대한 정보를 표시합니다. 더 높은 리포트 제한이 필요한 경우 Unity Pro나 Plus로 업그레이드하거나 지원 팀에 문의하십시오. 이 개요에서 총 네이티브 크래시, 영향을 받은 사용자, 총 예외 수에 대한 빠른 인사이트를 얻을 수 있습니다.
특정 문제 유형에 초점을 맞추려면 리포트를 필터링합니다. 선택한 필터의 결과는 발생 그래프 및 문제 목록에 표시됩니다. Add filter 드롭다운 메뉴를 사용하여 사전 선택된 필터 세트 중에서 선택한 다음 함수와 값을 적용합니다.
필터를 적용하려면 다음 단계를 따릅니다.
- Add Filter 버튼을 선택합니다.
- 필터 유형을 선택합니다. 필터에 함수와 값이 필요한 경우 두 번째 드롭다운이 열립니다.
- 해당되는 경우 필터에 적용할 함수(같음 또는 같지 않음)와 값을 지정합니다.
- Apply를 선택하여 필터를 적용합니다.
필터를 제거하려면 필터 유형 옆의 x를 선택합니다.
발생 그래프
발생 그래프는 시간에 따른 문제 수를 표시합니다. 12시간, 7일(Cloud Diagnostics), 90일(Advanced Cloud Diagnostics) 등 사전 정의된 기간 동안 필터링합니다. 날짜 범위를 지정하려면 리포트 기간 드롭다운을 선택하고 표시할 시간과 날짜 범위를 선택합니다.
발생 그래프에서 리포트를 삭제할 수도 있습니다. 이는 리포트된 문제가 수정되어 대시보드에서 더 이상 볼 필요가 없는 경우 유용합니다.
문제 목록
문제 목록은 유형별 전체 리포트 개수를 기준으로 정렬된 문제 리포트 목록을 표시합니다. 리포트 세부 정보를 보려면 리포트 이름을 선택합니다.
문제 리포트 세부 정보 파악
특정 문제 리포트의 세부 정보를 보려면 문제 목록에서 리포트를 선택합니다. 그러면 문제 세부 정보 페이지가 열리며 선택된 리포트에 대한 세부 정보가 표시됩니다.
문제 리포트 세부 정보 페이지의 상단 섹션은 ID, 문제 메시지, 유형, 영향을 받은 사용자 등 선택된 리포트의 요약을 표시합니다.
문제 리포트 세부 정보 페이지의 중단 섹션은 시간에 따른 발생의 집계된 데이터와 영향을 받은 운영체제, 앱 버전, 디바이스 모델을 표시합니다.
하단 섹션은 문제 리포트의 제목, 선택된 크래시 또는 예외 리포트가 발생한 날짜와 시간 등 개별 문제 리포트를 표시합니다.
문제 리포트 세부 정보 페이지의 하단 탭은 다음과 같습니다.
- Stack trace: 보고 있는 문제의 특정 리포트에 대한 스택 트레이스를 포함합니다. 스택 트레이스는 코드에서 문제가 발생한 위치를 판정하는 데 도움이 됩니다.
- Metadata: 문제가 발생한 디바이스에 대한 디바이스별 메타데이터를 포함합니다. 여기서 코드에 정의한 커스텀 메타데이터도 볼 수 있습니다. 커스텀 메타데이터를 설정하려면 CrashReportHandler.SetUserMetadata 메서드를 사용합니다.
- Logs: Debug 클래스의 Log 메서드를 사용해서 출력한 로그 메시지를 포함합니다. 로그 메시지는 메시지 유형, 날짜와 시간, 발생 프레임, 메시지를 포함합니다. 캡처되는 로그 메시지의 기본 수는 10개입니다. CrashReportHandler.logBufferSize 메서드를 사용하여 0~50개의 메시지를 캡처하도록 구성할 수 있습니다.
특정 문제 리포트에 대한 데이터를 JSON 포맷으로 다운로드합니다. 리포트를 다운로드하려면 문제 세부 정보 페이지 하단의 JSON 버튼을 선택합니다.
다음 단계
Crash and Exception Reporting을 설정했으니, 문제를 더 자세히 파악하기 위해 디버깅 기호를 추가하는 방법을 알아보겠습니다.