iOS

App Thinning, Bitcode

@서비 2022. 9. 3. 14:06

App Thinning에 관련한 내용이 여러곳에 소개가 되었는데 WWDC2015 영상과 공식 문서를 링크에 두었습니다.

 

 

앱을 개발하고 빌드를 할 때, 여러 형태의 디바이스에 적재되기 때문에 내부에는 armv7/armv7s/arm64 등으로 빌드된 코드의 조각이 있어야 한다. 그런데 이중에서 예를 들어 아래화면의 아이패드 라면 armv7/1x iPad 리스소/ OpenGL ES Low Quality / 96kb Audio 형태의 데이터만 있으면 된다. (App Slicing)

 

 

 

 

 

예를 들어 게임에서 사용자가 레벨 1이라면 레벨 1에 해당하는 화면이나 소리 리소스 들만 들고 있으면 되고, 나머지 리소스는 앱스토어가 가지고 있다가 진행하면서 다운로드 받는다 (On Demand Resources)

https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/index.html#//apple_ref/doc/uid/TP40015083

 

 

 

 

 

 

Bitcode is an intermediate representation of a compiled program.

 

Bitcode 는 기계어(compiled program)와 내가 구성한 코드(swift,obj-c) 중간의 코드 입니다.

정의는 모호한데, 내용을 보면 맞는 정의라는 것을 알 수 있다.

 

 

Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.

비트코드를 포함하면 앱스토어에서 다시 최적화하여 새로운 버전의 앱을 앱스토어에 제공 합니다. 그러니까 bit code 를 enable해서 앱스토어로 배포하면 앱스토어에서 디바이스에 맞게 최적화 해서(빌드인지 최적화 인지 모호함) 재공하는 것 이다.

 

 

 

 

참고로 Bitcode 는 아래의 위치에 있고, 기본 설정이 enable 이다.

 

 

 

 

참고

 

https://developer.apple.com/videos/play/wwdc2015/404/

https://zeddios.tistory.com/655

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