04-29 21:19
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- JetPack
- Data Binding
- kotlin
- java
- RETROFIT
- Android
- EditText
- ndk r24
- Android Studio
- 달러예금
- MG더뱅킹정기예금
- Mac
- 청약
- ChatGPT
- gradle
- ndkVersion
- CHAT GPT
- BindingAdapter
- 용산 호반써밋 에이디션
- Swift
- 새마을금고
- arm-linux-androideabi
- ios
- KB
- 사전청약
- Andorid
- audio record
- 3rd framework
- 예금
- 고금리
Archives
- Today
- Total
pear
3rd part framework project 3 - XCFramework(Fat Framework) 본문
결론부터 먼저 이야기하면 XCFramework로 변경하자.
XCFramework
Swfit 3rd party Framewrok를 기존 Object C에서 사용해 왔던 Fat Framwork 방식으로 만들어가다가 다양한 빌드 이슈에 직면하였고
오류의 내용들을 보면 문제가 발생한 원인이 버전 호환(swfitmodule) 및 다양한 지원에 대한 XCFramwork 추가로 인한 호환성 이슈로 판단.
Project 생성 방법
Other - > Aggregate -> New Run Script

ADD Script(New Run Script)
XCFramework | Fat Framework Tyep 구버전 |
FRAMEWORK_PATH="${SRCROOT}/../Framework/simplelib.xcframework" rm -rf "${FRAMEWORK_PATH}" xcodebuild archive -scheme simplelib -archivePath './build/ios.xcarchive' -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES xcodebuild archive -scheme simplelib -archivePath './build/ios_sim.xcarchive' -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES xcodebuild -create-xcframework \ -framework "./build/ios.xcarchive/Products/Library/Frameworks/simplelib.framework" \ -framework "./build/ios_sim.xcarchive/Products/Library/Frameworks/simplelib.framework" \ -output ${FRAMEWORK_PATH} |
FRAMEWORK_NAME=${PROJECT_NAME} SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework" DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework" UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal" UNIVERSAL_LIBRARY_PATH="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework" FRAMEWORK_PATH="${SRCROOT}/../Framework" Xcodebuild -target ${PROJECT_NAME} -UseNewBuildSystem=0 -scheme ${FRAMEWORK_NAME} -sdk iphonesimulator -configuration ${CONFIGURATION} clean build Xcodebuild -target ${PROJECT_NAME} -UseNewBuildSystem=0 -scheme ${FRAMEWORK_NAME} -sdk iphoneos -configuration ${CONFIGURATION} mkdir -p "${UNIVERSAL_LIBRARY_DIR}" mkdir "${FRAMEWORK}" cp -r "${DEVICE_LIBRARY_PATH}" "${UNIVERSAL_LIBRARY_DIR}" lipo "${SIMULATOR_LIBRARY_PATH}/${FRAMEWORK_NAME}" "${DEVICE_LIBRARY_PATH}/${FRAMEWORK_NAME}" -create -output "${UNIVERSAL_LIBRARY_PATH}/${FRAMEWORK_NAME}" #fat framework 생성 후 원하느 경로로 복사 #after copy rm -rf "${FRAMEWORK_PATH}" cp -R "${UNIVERSAL_LIBRARY_DIR}" "${FRAMEWORK_PATH}" #open "${FRAMEWORK_PATH}" *Fat Framewok 에서 특정 Architecture 추출lipo libName -thin arm64 -output libName64 |
공통 이슈 | Fat Framework 사용시 만나게 되는 다양한 오류 들 |
*M1 arm chip 관련 이슈<unknown>:0: error: no such file or directory: '/Users/.../Documents/Work/study/simplelib/@/Users/.../Library/Developer/Xcode/DerivedData/simplelib-gkowiiclxpowsidwcchxahtgybwn/Build/Intermediates.noindex/simplelib.build/Debug-iphoneos/simplelibU.build/Objects-normal/arm64/simplelibU.SwiftFileList'Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1 ![]() ![]() |
UseModernBuildSystem defactederror(xcode11)defacted(xcode9) UseModernBuildSystem=0 * defacted* 변경된 옵션 UseNewBuildSystem=0 UseNewBuildSystem=1 로 설정시 path I/O build Error 발생. Build Library For Distribution Isssue ![]() YES 설정하여 오류 해결 하였으나 import 하여 사용 시 다음 문제 발생. target 'x86_64-apple-ios-simulator' IssueCould not find module 'simplelib' for target 'x86_64-apple-ios-simulator'; found: arm64, arm64-apple-ios이 이슈는 Swifte의 버전 호환과 XCFramwork지원을 하게 되면서 발생하는 오류로 보이며 여러 사이트에서 VALID_ARCHS을 추가하여 해결하는 것을 가이드 하고 있으나 Apple이 추구 하는 방향을 역행 하는 것 같아서 XCFramwork 변경 결정. |
'iOS > swift' 카테고리의 다른 글
iOS issue - Error creating LLDB target at path (0) | 2022.01.20 |
---|---|
iOS 3rd framework bit code (0) | 2021.11.15 |
[iOS]swift record - 1 (0) | 2021.11.11 |
[iOS]3rd part framework 사용 App 만들기 (0) | 2021.11.11 |
[iOS]3rd part framework project 2 - modulemap setting(c API Support) (0) | 2021.11.11 |