iOS 앱스토어 심사에서 발견된 crash 파일(크래시 리포트) 분석하기

앱스토어에 앱을 등록하게되면

 

심사 담당자에 의해서 앱이 검수가 되고 이 검수를 통과해야만 앱스토어에서 배포가 가능합니다

 

심사 담당자(?)는 애플 가이드라인에 맞는 여러가지 항목들을 체크하는것으로 보입니다.

 

앱스토어 가이드라인의 정책적인 측면 이외에도

 

앱이 어디선가 갑자기 오류가 발생하여 비정상적인 종료가 발생하는지도 겸사겸사 점검을 하게되는데

 

검수중에 비정상적인 앱의 종료가 발생되면 

 

해당 크래시 로그파일과 함께 심사가 reject 되어 돌아옵니다.

 

 

 

당연히 이 문제를 해결하기 위해서는 이렇게 첨부된 크래시 내용을 분석해봐야겠죠?

 

심사 담당자가 어느어느 부분에서 크래시가 발생했다 라고 남겨주긴하는데

 

이 힌트만으로 문제점을 찾을수 있다면 물론 가장 베스트일것 입니다.

 

그런데 그렇지 못한 경우도 많을것입니다.

 

그때 이 크래시리포트 로그파일을 활용해야하는데요

 

 

이 크래시 리포트 로그 파일을 열면 알수 없는 메모리 주소만이 가득합니다.

 

사실 이 파일만으로는 우리가 컴퓨터가 아닌이상 해독할수가 없습니다.

 

 

그러면 이 파일을 어떻게 활용할수 있을까요?

 

https://developer.apple.com/library/archive/technotes/tn2151/_index.html#//apple_ref/doc/uid/DTS40008184-CH1-ANALYZING_CRASH_REPORTS

 

Technical Note TN2151: Understanding and Analyzing Application Crash Reports

Technical Note TN2151 Understanding and Analyzing Application Crash Reports When an application crashes, a crash report is created which is very useful for understanding what caused the crash. This document contains essential information about how to symbo

developer.apple.com

 

애플은 이렇게 "Understanding and Analyzing Application Crash Reports" 이 문서에 친절하게도 설명을 해두었습니다.

 

크래시 파일에는 사람이 해독하기 힘든 메모리 주소 등으로 로그가 표시되어있는데

 

이것을 사람이 해독할수 있도록 바꾸는 작업을 해야합니다.

 

 

이 작업을 애플은 Symbolicating 이라고 표현합니다.

 

이 작업을 해주는 방법을 여러가지가 있는데

 

그중에서도 가장 쉬운방법은 xcode를 활용하는 방법입니다.

 

 

 

1. 앱스토어 리젝사유에 첨부된 crash 리포트 텍스트 파일을 다운로드 합니다

 

2. 이 파일의 확장자는 txt인데 이것을 crash 라는 확장자명으로 바꿔줍니다

 

3. iOS 디바이스를 맥에 연결합니다

 

4. Xcode 열어 window 메뉴의 Devices and Simulators 메뉴를 클릭합니다

 

 

5. 좌측 패널에서 내 기기를 선택하고 우측 화면에서 View Device Logs 버튼을 클릭합니다

 

 

 

6. 이렇게 나타난 화면의 우측에 crash로 확장자를 바꾼 텍스트 파일을 드래그해서 넣습니다.

 

 

7. xcode가 자동적으로 이 크래시 리포트를 symbolicate하여 우측 결과에 추가적으로 표시합니다.

 

좌측항목에 여러분이 추가한 크래시 리포트 파일 항목이 추가되는데

 

그 항목의 Process에는 여러분의 앱 이름으로 된 항목이 추가될것입니다

 

이 추가된 항목을 클릭하면 사람이 읽을수 있는 형태의 크래시 리포트를 우측 화면에서 확인할수 있습니다.

 

 

메모리 주소로 가득했던 크래시 리포트가 사람이 읽을수 있는 형태로 바뀐것을 첨부화면에서 보실수 있으실 거예요

 

| 1 | ··· | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ··· | 1829 |