출처 : https://ss64.com/osx/lipo.html
결과출처 : 직접 실행
스테틱 라이브러리에 다양한 빌드 아키텍쳐를 넣기 위해서는 lipo 명령을 이용한다.
아이폰 디바이스에는 arm계열이, Mac에서 시뮬레이터를 돌리려면 x86계열이 필요하다.
용량은 포함하는 만큼 늘어나므로 시뮬레이터가 필요 없다면 빼서 용량을 줄일 수 있다.
명칭이 재밌게도 아키텍쳐 빌드를 두개 이상 합쳐서 Universal 형태로 만들면 fat file이 되고, thin 옵션을 주면 Non-fat file이 된다.
1. 정보 가져오기
lipo -info libMyStatic.a
결과 예시
Architectures in the fat file: libMyStatic.a are: armv7 i386 x86_64 arm64
libMyStatic.a 파일은 빌드가 armv7, i386, x86_64, arm64 이렇게 구성됨
2. 특정 빌드만 추출하기
lipo libMyStatic.a -thin armv7 -output libMyStatic.a.armv7
새로 생성된 libMyStatic.a.armv7 파일을 lipo -info를 해보면 armv7만 볼 수 있다.
Non-fat file: libMyStatic.a.armv7 is architecture: armv7
예시에선 파일명 끝에 .armv7을 붙였는데 이름은 아무렇게나 정해도 상관없다.
3. 특정 빌드 합치기
lipo -create -output libMyStatic.a.iphone libMyStatic.a.armv7 libMyStatic.a.arm64
-output 다음에 연속해서 써서 조금 헷깔리는데, -output 다음에 나오는게 결과물이고, 그 이후에 나오는 모든 항목들은 합칠 아키텍쳐 들이다.
새로 생성된 libMyStatic.a.iphone 파일을 lipo -info를 해보면 armv7, arm64 둘다 볼 수 있다.
Architectures in the fat file: libMyStatic.a.iphone are: armv7 arm64
'Mac&iOS' 카테고리의 다른 글
코코아 팟 설치 (0) | 2018.05.31 |
---|---|
XCode 8에서 iOS 6 버전대 타겟을 설정 (0) | 2018.05.24 |
c++ 동적 로딩 관련 개발 가이드 (0) | 2018.04.17 |
Objective-C 자주 찾게 되는 형변환 (0) | 2017.11.14 |
개발관련 아이폰 화면 사이즈(3GS~6+) (0) | 2017.11.03 |