앱 실행 시 일정 시간 후에 앱이 종료되는데 크래시가 확인되지 않는다면, 앱실링 SDK가 앱 또는 단말 환경을 위험한 상태로 판단하여 앱을 종료한 것입니다.
이 때. SDK 적용 가이드에 포함되어있는 GUI를 표시하는 샘플코드를 적용했다면 앱이 종료되는 원인을 더 쉽게 파악할 수 있습니다.
앱실링 적용 후 테스트단계에서 이런 증상을 겪는 다면 다음중 한가지를 의심해볼 수 있습니다.
- 케이스 1 - Release IPA 빌드 후 Testlfight/AppStore에 업로드하지 않고 바로 스마트폰에 설치 및 실행한 경우
- 케이스 2 - IPA 빌드 후 genereate_hash 스크립트를 실행하지 않았거나, generate_hash 스크립트 실행중 오류가 발생한 경우
- 케이스 3 - 탈옥단말에서 앱을 실행한 경우
- 케이스 4 - IPA에 generate_hash 스크립트까지 적용한 뒤에 추가로 변경된경우
각 케이스에 대한 설명을 아래에 작성하였습니다.
케이스 1 - Release IPA 빌드 후 Testlfight/AppStore에 업로드하지 않고 바로 스마트폰에 설치 및 실행한 경우
XCode IDE에서 Release IPA를 archive 하여 스마트폰 또는 시뮬레이터에 바로 설치하여 실행하면 앱이 제대로 배포되지 않은 것으로 간주하여 앱 실행후 20초 뒤 종료됩니다.
이 경우, 앱실링 GUI에서는 다음과 같은 메세지가 표시됩니다.
Executable is not encrypted
해결 방법 :
Release IPA는 반드시 Testflight 또는 AppStore에 업로드 후 스마트폰에 설치해 테스트하시기 바랍니다.
케이스 2 - IPA 빌드 후 genereate_hash 스크립트를 실행하지 않았거나, generate_hash 스크립트 실행중 오류가 발생한 경우
SDK 적용 마지막 단계에 generate_hash 스크립트를 아카이브된 IPA에 적용해야 합니다. 이를 통해 앱의 해쉬 정보를 생성해 앱 무결성을 검증하는데 사용합니다. 이 단계에서 오류가 발생한 상태에서 IPA를 Testflight에 업로드하여 스마트폰에 설치 및 실행한다면 앱실링 GUI에서 다음과 같은 메세지가 표시됩니다.
Executable is not encrypted
케이스 3 - 탈옥단말에서 앱을 실행한 경우
앱실링은 탈옥환경을 탐지하고 있기때문에, 이경우 앱실링 GUi에서 다음과 같은 메세지가 표시됩니다.
Jailbroken
탈옥환경에서 앱을 실행하길 원하시는 경우 앱실링 SDK를 비활성화하신 다음 다시 앱을 빌드해 주시기 바랍니다.
케이스 4 - IPA에 generate_hash 스크립트까지 적용한 뒤에 추가로 변경된경우
이 경우, 앱실링 GUI에서 다음과 같은 메세지가 표시됩니다.
App integrity corrupted
또는
App executable has corrupted
generate_hash 스크립트 적용 후, IPA에 어떤 변경이 있었는지 확인후, 가능하다면 generate_hash 스크립트의 실행 순서를 마지막으로 설정해주시기 바랍니다.
추가적인 변경이 없었는데, 앱을 Testflight 를 통해 설치했는데 이와 같은 문제가 발생한다면 앱실링 개발팀에서 앱실링 debug 라이브러리가 적용된 IPA를 Testflight를 통해 공유받아 증상 및 원인을 파악해야 합니다. 이를 위해 헬프센터로 직접 문의 주시기 바랍니다.