'lipo'에 해당되는 글 2건

반응형

정적라이브러리 생성후 배포 시 시뮬레이터로 작업하는 프로젝트의 경우 라이브러리에 해당 아키텍쳐가 포함되어있지 않아 실행할 수 없는 상황이 발생하곤 합니다. 이럴경우 생성된 정적라이브러리에 해당 아키텍처를 포함시켜줄 수 있습니다.

아래의 과정은 배포하는 정적라이브러리를 사용하는 프로젝트에서 시뮬레이터 빌드가 가능하도록 Fat Static Library를 생성하는 방법입니다.

Fat Static Library(이하 Fat 라이브러리) 생성 순서

1. Device 용 빌드
빌드 패스에 ’Release-iphoneos’ 폴더에  저장 됨.

2. Simulator 용 빌드
빌드 패스에 ’Release-iphonesimulator’ 폴더에 저장 됨.

3. Xcode 메뉴에서 Project Seettings… 창을 열면 아래와 같이 빌드 디렉토리 경로를 볼 수 있다.

 

4. 또는 Xcode 의 Project Navigator 에서 Products에 빌드된 파일로 빌드된 디렉토리를 확인할 수 있다.

5. 위 4번 파일을 이용하여 빌드된 디렉토리로 이동하면 다음과 같다.

6. 빌드된 라이브러리 파일을 Device, Simulator에 따라 파일이름을 각각 ‘libXXXD.a’, ‘libXXXS.a’로 바꿔 Desktop에 복사한다.

7. 콘솔창을 띄워 Desktop폴더로 이동

cd ~/Desktop

8. 콘솔창에서 lipo명령을 통해 Device와 Simulator 로 빌드된 두 라이브러리를 합친다. 

lipo -create ./libXXXD.a ./libXXXS.a -output ./libXXX.a

9. 8번에서 생성된 Fat 라이브러리 Architectures 를 확인 하도록 한다.
lipo -I libXXX.a

10. 9 결과가 Device 아키텍쳐(armv7, arm64, armv7s) Simulator 아키텍쳐(i386, x86_64)
포함되었다면 정상이므로 ‘libXXX.a’ 배포하도록 한다.

 

 

2020/12/10 - [iOS/Tips] - Fat Static Library 빌드 (2/2)

2020/12/10 - [iOS/Tips] - Fat Static Library 빌드 (1/2)

2020/12/10 - [iOS/Tips] - Custom UserAgent 설정

2020/12/10 - [iOS/Tips] - CocoaPods 설치 및 제거

2020/12/10 - [iOS/Tips] - Clang diagnostic 경고 무시하기

2020/12/10 - [개발노트] - Bluetooth UUID

2020/12/08 - [개발노트] - 모바일 앱 메모리덤프 이슈 해결방법

2020/12/08 - [프로그래밍/Java Script] - Android, iOS 앱 설치여부 체크 및 스토어 이동

2020/08/21 - [Android/Tips] - aab파일 apk파일로 변환

2020/08/11 - [iOS/Swift] - WKWebView 화면 출력 완료 이벤트

2020/08/06 - [iOS/Tips] - 개발관련 폴더 경로

2020/07/19 - [Android/Tips] - 안드로이드 원격 디버깅 방법

2020/07/18 - [Android/Tips] - Cannot convert string value 'JETPACK_COMPOSE' to an enum value of type 'com.android.builder.model.AndroidGradlePluginProjectFlags$BooleanFlag' (valid case insensitive values: APPLICATION_R_CLASS_CONSTANT_IDS, TEST_R_CLASS_CONSTANT_IDS, TRANSITIVE_R_CLASS)

2020/07/18 - [Android/Tips] - OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended

2020/07/17 - [iOS/Tips] - 웹에서 iOS 앱 설치여부 체크

반응형

'개발 > iOS' 카테고리의 다른 글

웹뷰에서 javascript 함수 동기식 호출  (0) 2020.12.10
Fat Static Library 빌드 (2/2)  (0) 2020.12.10
Custom UserAgent 설정  (0) 2020.12.10
CocoaPods 설치 및 제거  (0) 2020.12.10
Clang diagnostic 경고 무시하기  (0) 2020.12.10
블로그 이미지

SKY STORY

,
반응형

static library 추가시 오브젝트 중복 사용으로 인한 충돌할 경우가 있다

이런경우 중복되는 라이브러리에서 중복되는 오브젝트를 제거하여

문제를 해결할 수 있다.

 

——————————————————————

# 타겟 정적 라이브러리 

# libTestLib

——————————————————————

# 제거할 오브젝트

u-des.o

MOD2.o

——————————————————————

 

 

# 라이브러리 아키텍쳐 검사 

lipo -i libTestLib.a

Architectures in the fat file: libTestLib.a are: armv7 arm64

 

# 라이브러리를 아키텍쳐별로 분리하여 저장

lipo libTestLib.a -thin armv7 -output libTestLib.armv7

lipo libTestLib.a -thin arm64 -output libTestLib.arm64

 

# 라이브러리의 모든 오브젝트 리스트 출력

ar -t libTestLib.armv7

ar -t libTestLib.arm64

 

u-des.o     <———————————————

MOD2.o     <———————————————

 

# 오브젝트 제거

ar -d -sv libTestLib.armv7 u-des.o

ar -d -sv libTestLib.arm64 u-des.o

ar -d -sv libTestLib.armv7 MOD2.o

ar -d -sv libTestLib.arm64 MOD2.o

 

# 최종 결과물 저장을 위해 'output’디렉토리 생성

mkdir output

 

# 오브젝트가 제거된 아키텍쳐 라이브러리들을 결합하여 'output’디렉토리에 저장

lipo libTestLib.armv7 libTestLib.arm64 -create -output ./output/libTestLib.a

 

2020/06/12 - [iOS/Jailbreak] - Fridump 사용법 (4/4) - 결과물 바이너리 검색

2020/06/03 - [iOS/Objective-C] - NSString <-> CBUUID

2020/06/03 - [iOS/Swift] - 위치서비스(location service) 활성화 여부 체크

2020/06/02 - [개발노트] - Luhn 알고리즘

2020/06/01 - [iOS/Swift] - The Ultimate Guide to WKWebView

2020/06/01 - [iOS/Tips] - WKWebView에서 로컬 웹 파일 및 리소스 로드

2020/06/01 - [iOS/Tips] - WKWebView

2020/05/29 - [iOS/Swift] - 네비게이션바 투명 처리

2020/05/29 - [개발툴/Xcode] - NFC Xcode 설정

2020/05/29 - [개발노트] - NFC (Near Field Communication)

2020/05/29 - [개발노트] - NFC Tag 저장용량

2020/05/29 - [개발노트] - NDEF

2020/05/29 - [개발노트] - Mifare

2020/05/29 - [iOS/Swift] - 클로저(Closure)

2020/05/29 - [개발노트] - QR 코드 결제 타입

반응형

'개발 > Note' 카테고리의 다른 글

SMC(System Management Controller) 재설정  (0) 2020.07.11
NVRAM(PRAM) 재설정 방법  (0) 2020.07.11
Luhn 알고리즘  (0) 2020.06.02
NFC Xcode 설정  (0) 2020.05.29
NFC (Near Field Communication)  (0) 2020.05.29
블로그 이미지

SKY STORY

,