개발하는 뚝딱이

[iOS] 앱 시닝(app thinning) 본문

iOS

[iOS] 앱 시닝(app thinning)

개발자뚝딱이 2020. 2. 15. 21:13

 

앱 시닝(app thinning)이란?

애플리케이션이 디바이스에 설치될 때, 앱 스토어와 운영체제가 디바이스의 특성에 맞게 설치되도록 하는 설치 최적화 기술을 의미합니다. 최소한의 디스크 사용과 빠른 다운로드를 제공할 수 있습니다. 앱 시닝은 슬라이싱(slicing), 비트코드(bitcode), 그리고 주문형 리소스(on-demand resource)가 있습니다.

 

 

슬라이싱(slicing)이란?

앱이 지원하는 여러 디바이스에 대해 각각 조각 애플리케이션 번들을 생성하고, 해당 디바이스에 가장 적합한 조각을 전달하는 기술입니다. 개발자가 App store connect에 업로드하면, 앱 스토어에서 디바이스 특성에 따라 다양한 버전의 조각들을 생성합니다. 그리고 사용자가 그 조각 중에서 가장 알맞은 조각(app variant)을 다운로드 받는 것입니다.

 

 

비트코드(bitcode)란?

비트코드는 기계언어로 번역되기 이전 단계의 중간표현(Intermediate Representation)을 말합니다. 현재 iOS에서는 옵션이나 기본 설정으로 되어 있으며, 개발자가 프로젝트 옵션에서 선택할 수 있습니다. 비트코드를 사용하여 업로드를 하면 애플이 애플리케이션을 재컴파일하여 앱 바이너리(app binary)를 생성합니다. 비트코드를 사용하지 않으면, 모든 경우의 디바이스 경우에 따라 바이너리로 생성하여 합쳐져서 fat binary라는 것이 업로드되지만, 비트코드를 사용하면 필요 경우에 따라 재컴파일하게 되므로 여기에서 최적화할 수 있습니다.

 

 

주문형 리소스(on-demand resource)란?

쉽게 말해서, 필요할 때 다운로드 받는다는 것입니다. 예를 든다면 사용자가 게임을 합니다. 현재 레벨보다 상위레벨은 필요하지 않으므로 갖고 있을 필요가 없습니다. 사용자의 레벨이 필요할 때 다운로드 받는 것입니다. 또한 인앱 구매를 예로 들 수 있습니다. 사용자의 선택에 따라 다운로드를 받는 것입니다.

 

 

 

참조

https://www.bugsee.com/blog/ios-crash-symbolication-bitcode/

https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f

https://www.edwith.org/boostcourse-ios/lecture/16842/