일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- IOS
- 프로퍼티
- MVVM
- Swift
- JJGram
- MeTal
- 클러스터링
- 네이버지도
- 섯다족보앱
- 프로퍼티 종류
- 먹튜브
- quadtree
- clustering
- NaverMap
- 먹튜브로드
- xcframework
- SwiftUI
- 1002
- 음식리뷰앱
- Oracle
- 섯다족보
- cluster
- StaticLib
- acmicpc
- 먹방지도
- 백준
- vm
- property
- 음식지도
- Firebase
- Today
- Total
아반떼오우너의 개발블로그 ㅋㅋ
[iOS] StaticLibrary를 이용하여 XCFramework 만들기 본문
일반적으로 StaticLibrary를 빌드하게 되면 ARM / X86와 같이 용도에 따라 각각 빌드를 하게 된다.
그래서 각각 빌드된 두가지 .a을 모두 앱에 일일이 Import 시켜줘야하고, 이에따라 Path도 따로 잡아줘야한다.
그러나 Apple 생태계에는 XCFramework라는 개념이 존재하는데, 이것을 이용하여 우리는 하나의 Framework로 만들어서
마치 하나의 라이브러리를 사용하는것처럼 작업하면서 실제 두가지 아키텍쳐 모두 사용이 가능하도록 할수있다.
그래서 한단계씩 진행하면서 어떻게 이 XCFramework라는것을 만드는지 정리해보았다.
아래내용은 이 블로그에서 나온 내용을 기반으로 작성하였음.
1. Static Library로 프로젝트를 생성한다.
2. 라이브러리 코드 작성.
3. Xcode프로젝트가 위치한 폴더에서 빌드 스크립트 작성.
ARM64, X86용 StaticLib을 생성하고 그것을 XCFramework로 합치는 과정.
# 1. 빌드가 진행될 폴더 삭제 및 재생성
rm -rf ./build
mkdir build
# 2. 시뮬레이터용(X86) 빌드
xcodebuild build -scheme StaticLibCode -derivedDataPath derived_data -arch x86_64 -sdk iphonesimulator BUILD_LIBRARY_FOR_DISTRIBUTION=YES
mkdir -p build/simulators
cp -r derived_data/Build/Products/Debug-iphonesimulator/ build/simulators
# 3. 기기용(ARM64) 빌드
xcodebuild build -scheme StaticLibCode -derivedDataPath derived_data -arch arm64 -sdk iphoneos BUILD_LIBRARY_FOR_DISTRIBUTION=YES
mkdir -p build/devices
cp -r derived_data/Build/Products/Debug-iphoneos build/devices
# 4. 위 2가지의 StaticLib을 이용하여 XCFramework로 빌드
xcodebuild -create-xcframework \
-library build/simulators/libStaticLibCode.a \
-library build/devices/Debug-iphoneos/libStaticLibCode.a \
-output build/StaticLibCode.xcframework
4. 빌드 진행하기
위 내용은 Shell Script로 Sublime과 같은 텍스트 에디터로 작성후, 터미널에서 실행권한을 줘야하는데 아래와같이 터미널에 입력.
chmod 755 [빌드스크립트 이름].sh
ex. chmod 755 buildScript.sh
이후 ./buildScript.sh를 실행하면 Xcode-Builder에 의해 빌드가 진행되며
위 스크립트에 의해 동일한 위치의 build폴더에 [프로젝트이름].xcframework라는 파일이 생성된다.
5. 빌드한 XCframework를 앱에서 사용하기
테스트를 진행하기 위한 앱 프로젝트 생성후, 4번에서 빌드했던 XCFramework파일을 드래그&드랍으로 프로젝트내에 위치시킨다.
이후 아래와 같은 화면에서 Finish를 눌러 XCFramework를 앱 프로젝트 내에 위치시킨다.
여기까지 진행됬다면 프로젝트에 이런식으로 [프레임워크 프로젝트명]의 XCFramework가 추가가 되었을것이다.
그리고 앱 프로젝트의 Build Settings에서 Swift Compiler - Search Paths 항목에 아래 2가지 경로를 추가해준다.
StaticLibCode.xcframework는 본인이 정한 프레임워크의 이름으로 대체해야함.
$(PROJECT_DIR)/StaticLibCode.xcframework/ios-arm64
$(PROJECT_DIR)/StaticLibCode.xcframework/ios-x86_64-simulator
이제 XCFramework를 앱에서 사용할수있다.
자신의 Framework를 Import시키고
그안에 있던 함수(printLibrary)를 호출하면 해당 내용이 Print되어 나오는것을 볼수있다.
'iOS' 카테고리의 다른 글
[iOS] 프로퍼티의 종류 (1) | 2022.09.15 |
---|---|
[iOS] Then에 대한 고찰 (0) | 2022.08.26 |
[iOS] 네이버지도 클러스터링 라이브러리 제공하기 (0) | 2022.06.29 |
[iOS] GoogleMap에 적용된 클러스터링 알고리즘 with 네이버지도 (0) | 2022.06.17 |
[iOS] 네이버지도 클러스터링 구현 (0) | 2022.06.16 |