Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- MVVM
- Protocol
- map
- uitableview
- Observable
- SWIFT
- ribs
- 애니메이션
- UITextView
- Xcode
- Human interface guide
- swiftUI
- 리팩토링
- 스위프트
- 클린 코드
- rxswift
- RxCocoa
- 리펙터링
- HIG
- UICollectionView
- uiscrollview
- collectionview
- tableView
- Clean Code
- ios
- clean architecture
- 리펙토링
- combine
- Refactoring
- swift documentation
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] Carthage로 RIBs 빌드 방법 (카르타고 RIBs 에러) 본문
Apple Silicon 맥북에서 Carthage로 RIBs를 사용할 때 에러
- Universal 아키텍쳐 프레임워크를 빌드하려고 할 때, simulator와 타겟 디바이스의 지원하는 아키텍쳐가 동일한 경우 에러가 발생
- 인텔 멕북이 아닌 Applie Silicon Mac에서는 arm64을 사용하고 있기 때문에, 이를 따라가는 simulator도 arm64인 상태
- 디바이스 지원하는 아키텍쳐가 arm64인 상태
ex) Carthage 에러 발생
- RIBs 깃허브에 나와있는 버전으로 지정한 후 카르타고 파일 준비 (Cartfile)
github "uber/RIBs" ~> 0.9
- 아래 명령어로 Carthage를 통해 RIBs 설치
carthage update
(에러 발생)
에러가 발생하는 이유
- RxSwift에서는 simulator, 디바이스의 지원하는 아키텍쳐를 모두 arm64로 해놓은 상태이고, 디바이스와 시뮬레이터의 아키텍쳐가 동일한 경우 universal 프레임워크를 만들 수 없으므로 에러가 발생
- 해결 방법?
- xcframework로 프레임워크를 만들면 xcframework에서 알아서 다양한 아키텍쳐를 지원해주는 것을 자동으로 관리해주므로 에러가 발생하지 않고 빌드가 가능
- xcframework로 프레임워크를 만들려면 RIBs 프로젝트에서 "FRAMEWORK_SEARCH_PATHS"를 변경해주고 xcframework로 프레임워크 생성해야함
RIBs 프로젝트에서 FRAMEWORK_SEARCH_PATHS 변경하기
- RIBs의 FRAMEWORK_SEARCH_PATHS를 변경하기 위해서 RIBs 깃 레포 포크 수행
- 포크한 RIBs 프로젝트의 Build Settings에서 framework search path를 검색
- 현재는 "$(PRODUCTS_DIR)../Carthage/Build/iOS/"으로 되어 있고, 이 값을 "$(SRCROOT)/../Carthage/Build/iOS/"으로수정
- 여기서 framework search path 값을 변경하는 이유?
- $(PRODUCTS_DIR): 프로덕트의 경로를 의미
- $(SRCROOT): 프로젝트 루트 경로를 의미
- 변경하게되면 RIBs 프로젝트 통째로 참조하게 되어 xcframework로 감쌀 수 있는 형태가 됨
ex) ExMyProject로 프로젝트 처음 만든 경우, 경로 예시
- $(PRODUCTS_DIR): ExMyProject/RIBs
- $(SRCROOT): ExMyProject
---
- 변경 후 fork한 레포에 push 후 해당 commit을 copy
- Cartfile에 포크된 커밋 정보로 입력
github "JK0369/RIBs" "2442475967277e2b2b68cb8d5d5b2a28bb8b3791"
- xcframework로 아카이브
carthage update --use-xcframeworks --platform iOS
(성공)
* 참고
https://www.kodeco.com/7649117-carthage-tutorial-getting-started
'iOS 응용 (swift)' 카테고리의 다른 글
Comments