본문 바로가기

프로그래밍/iOS,macOS

XCFramework 만들기

프레임워크 빌드

sdk 에 맞춰 아카이빙이나 framework로 빌드할 수 있다.
xcodebuild 관련 세부 내용 : xcodebuild (tistory.com)

 

xcodebuild

xcode 에서 프로젝트별 xcodebuild 기본 빌드 설정 프로젝트 > Info > Configurations Use Debug/Release for command-line builds 기본 적인 사용 -workspace {xcworkspace} -project {xcodeproj} -configurati..

liveupdate.tistory.com

 

스키마를 통한 빌드이므로, 대부분의 옵션은 빌드셋팅에 지정된 옵션으로 빌드가 이루어진다.

xcodebuild archive 
    -workspace PROJECT.xcworkspace
    -scheme MY_SCHEME
    -configuration CONFIGURATION
    -archivePath "./build/ios.xcarchive" 
    -sdk iphoneos
    BUILD_LIBRARY_FOR_DISTRIBUTION=YES 
    SKIP_INSTALL=NO
    
    
xcodebuild archive 
	-wrokspace PROJECT.xcworkspace
    -scheme MY_SCHEME
    -configuration CONFIGURATION
    -archivePath "./build/simul.xcarchive" 
    -sdk iphonesimulator
    BUILD_LIBRARY_FOR_DISTRIBUTION=YES 
    SKIP_INSTALL=NO
    
    
xcodebuild archive
	-workspace PROJECT.xcworkspace
    -scheme MY_SCHEME
    -configuration CONFIGURATION
    -archivePath "./build/mac.xcarchive" 
    -sdk macosx
    BUILD_LIBRARY_FOR_DISTRIBUTION=YES 
    SKIP_INSTALL=NO

 

단일 프레임워크라 아카이브 필요없이 framework만 생성하는 경우 예시
CONFIGURATION_BUILD_DIR 으로 출력 위치를 지정할 수 있다.

// configuration : release, debug
// sdk : iphoneos , iphonesimulator


xcodebuild -project MyProject.xcodeproj \
           -scheme MyScheme \
           -configuration release \
           -sdk iphoneos \
           clean \
           build \
           CONFIGURATION_BUILD_DIR="./Build/Release-ios" \
           CODE_SIGN_IDENTITY="" \
           CODE_SIGN_ENTITLEMENTS="" \
           CODE_SIGNING_REQUIRED=NO \
           CODE_SIGNING_ALLOWED=NO \
           ONLY_ACTIVE_ARCH=NO 2>&1

 

xcframework 생성

archive 내부의 framework 혹은 빌드된 폴더의 framework 들을 지정해 -create-xcframework 옵션으로 빌드하면 xcframework 파일이 생성된다.
각 프레임워크 위치는 아카이빙한 바이너리 하위의 Product/Library/Frameworks/ 에 생성되며, 빌드 설정(Installation Directory)에 따라 생성위치가 달라질 수 있다.
ex) Project.xcarchive/Products/Library/Frameworks/Project.framework
디버그 심볼은 /dSYMs/Project.framework.dSYM

dSYM 파일은 -debug-symbols 로 포함시킬 수 있으며, 별도 정의하지 않으면 해당 프레임워크에 대한 dSYM은 제외된다.

xcodebuild -create-xcframework 
     -framework "./output1.archive/Products/Library/Frameworks/Project.framework"
     -debug-symbols ./output1.archive/dSYMs/Project.framework.dSYM
     -framework "./output2.archive/Products/Library/Frameworks/Project.framework"
     -output "./Project.xcframework"

 

'프로그래밍 > iOS,macOS' 카테고리의 다른 글

Codable for Dictionary  (0) 2020.06.10
UITableView , UICollectionView  (1) 2020.04.14
[iOS] 키보드를 따라 올라오는 뷰  (0) 2020.04.08
[iOS] Google SignIn  (0) 2020.03.30
xcode 11. ios13 미만, storyboard 없이 시작  (0) 2020.03.29
[iOS] CoreAudio AudioUnit  (0) 2019.10.08
iOS 프레임워크 파이썬 스크립트  (0) 2019.07.23
[iOS] GPUImage  (0) 2019.07.06
xcodebuild  (0) 2019.06.06
CocoaPods 라이브러리 배포  (0) 2019.05.31