iOS 프로젝트에서 사용하는 정적 라이브러리도 Bitcode 적용

2018. 1. 23. 18:16Programming/Unity3d

# iOS에서 bitcode란?


# 지금 프로젝트에서는?
– 유니티에서 빌드한 Xcode 프로젝트는 디폴트로 Build Option> Use Bitcode값이 TRUE
이 값이 켜져 있어도 일반 빌드 과정에서는 app의 Bitcode화를 하지 않으므로 전혀 문제가 없고
문제가 있는지도 모른다.

다만 app에서 사용하는 외부 static_library에서도 Bitcode가 적용되지 않으면
app을 Archive하게 될 때, 링크과정에서 Xcode에서 app링크시 다음과 같은 오류가 발생하고
archive가 실패한다

ld: bitcode bundle could not be generated because ‘{project dir}/path/to/lib_blarblar.a’ was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture arm64


Bitcode를 적용하기 위해 Xcode에서 다음과 같은 작업을 하였음.
1. Custom Compiler flag 추가



Debug와 Release일때 적용하는 플래그값이 다른데 그 차이는 다음과 같다.

요는 테스트시 빌드시간이 늘어지지 않기 위해 진짜 Bitcode섹션을 삽입하지 않고

마킹만 하여 주는 것.



2. User Defined에서 flag 추가


User Defined섹션은 Build Option의 기본메뉴가 아니므로

여기서 추가해 주어야 한다.


여기까지 완료하면  새로 라이브러리를 빌드하고 유니티 빌드 및 Xcode에서 app Achive하면

export 단계까지 갈 수 있다.

'Programming > Unity3d' 카테고리의 다른 글

Unity에서 스크린샷 남기기  (0) 2020.12.14
유니티 IOS 빌드시 발생하는 Stripping의 방지  (0) 2018.01.22
의존 컴파일  (0) 2018.01.22