XCFramework는 멀티 플랫폼(ios, macos, tvos, watchos)등의 통합을 지원합니다.
프레임워크 작성시 외부에서 사용한 class
혹은 func
의 접근 제한자(Access Modifier)는 public
또는 open
로 하여야 외부에서 사용이 가능합니다.
예시 이미지
Targets - TestFramework - Build Settings
1. Build Options - Build Libraries for Distribution=YES
2. Build Options - Validate Workspace=YES
3. Deployment - Skip install=NO
제 프레임워크 경우 ~/Desktop/TestFramework 에 위치합니다.
cd ~/Desktop/TestFramework
xcodebuild archive\
-project TestFramework.xcodeproj\
-scheme TestFramework\
-configuration Release\
-sdk iphoneos\
-destination 'generic/platform=iOS'\
-archivePath ./build/TestFramework.framework-iphoneos.xcarchive
해당 명령어를 치고 Archive 생성 성공하면 ** ARCHIVE SUCCEEDED ** 가 뜹니다.
xcodebuild archive\
-project TestFramework.xcodeproj\
-scheme TestFramework\
-configuration Release\
-sdk iphonesimulator\
-destination 'generic/platform=iOS Simulator'\
-archivePath ./build/TestFramework.framework-iphonesimulator.xcarchive
해당 명령어를 치고 Archive 생성 성공하면 ** ARCHIVE SUCCEEDED ** 가 뜹니다.
xcrun xcodebuild -create-xcframework \
-framework './build/TestFramework.framework-iphoneos.xcarchive/Products/Library/Frameworks/TestFramework.framework' \
-framework './build/TestFramework.framework-iphonesimulator.xcarchive/Products/Library/Frameworks/TestFramework.framework' \
-output './build/TestFramework.xcframework'
여기까지 XCFramework를 생성 하는 방법을 설명 했습니다.
Frameworks 폴더 생성 후 TestFramework.xcframework를 추가합니다. 추가시 Copy items if needed를 체크하여, 프로젝트 내 프레임워크를 카피합니다.
카피가 완료 되면, project navigator는 아래 이미지와 같습니다.
viewController내에 테스트코드를 작성 해봅니다.
해당 결과는 다음과 같습니다.
필자의 PC환경은 M1(ARM) macbook pro 이며 intel mac에서 오류가 발생할 수도 있습니다.
추가로 2019년 WWDC - Binary Framework in Swift를 시청하시면 좋을것 같습니다.
다음 포스트는 private cocoapods으로 해당 framework를 배포하는 방법을 작성하고자 합니다.
잘못된 자료 수정요청 및 의견 공유는 댓글로 달아주시면 감사하겠습니다!