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
- swiftUI
- Protocol
- 클린 코드
- Refactoring
- map
- Xcode
- ios
- clean architecture
- uiscrollview
- swift documentation
- HIG
- SWIFT
- 스위프트
- tableView
- UICollectionView
- MVVM
- rxswift
- combine
- Clean Code
- 리펙토링
- Human interface guide
- 리팩토링
- collectionview
- 리펙터링
- UITextView
- uitableview
- RxCocoa
- Observable
- 애니메이션
- ribs
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[Cocoa pod 세팅] 여러개의 프레임워크에 cocoa pod 의존성 관리 (target, do, def) 본문
Git, CocoaPods, Xcode, Shell
[Cocoa pod 세팅] 여러개의 프레임워크에 cocoa pod 의존성 관리 (target, do, def)
jake-kim 2020. 11. 14. 15:23여러개의 프레임워크로 나누기
프로젝트 하나에 여러개의 framework 삽입 방법은 여기 참고
sample)
- 메인앱: MainProj.xcodeproj
- 서브앱: SubProj1.xcodeproj
여러개의 pod 의존성 설정
- MainProj.xcworkspace파일을 열어서, podfile파일 오픈 (podfile은 기본적으로 ruby랭기지)
- 기본적인 환경세팅
platform :ios, '11.0' # 플랫폼 설정
use_frameworks! # 스위프트를 사용하고 동적 라이브러리를 사용하겠다는 의미
inhibit_all_warnings! # Xcode에서 pods와 관련된 경고 없애기
- 프로젝트 정보설정
workspace 'MainProj'
project 'MainProj/MainProj.project'
project 'SubProj1/SubProj1.project'
- def - end문으로 종속성 정의 (일종의 변수)
def shared_pods
pod 'KeychainAccess'
end
def app_pods
pod 'RxSwift'
end
def tests_pods
pod 'RxTest'
pod 'RxNimble'
end
- target - do - end문 : if문과 동일
- inherit! :이란 해당 타겟의 상속모드를 결정 (complete: 부모로 부터 모두 상속 / none / search_path: 부모의 검색 경로만 상속)
target 'MainProj' do
project 'MainProj/MainProj.project'
shared_pods
app_pods
target 'MainProjTests' do
inherit! :search_paths
tests_pods
end
end
target 'SubProj1' do
project 'SubProj1/SubProj1.project'
shared_pods
target 'SubProj1Tests' do
inherit! :search_paths
tests_pods
end
end
- 설치 할 때 iOS버전과 swift버전 지정
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
config.build_settings['SWIFT_VERSION'] = '5.1'
end
end
end
전체코드
platform :ios, '11.0'
use_frameworks!
inhibit_all_warnings!
# 프로젝트 정보 설정
workspace 'MainProj'
project 'MainProj/MainProj.project'
project 'SubProj1/SubProj1.project'
def shared_pods
pod 'KeychainAccess'
end
def app_pods
pod 'RxSwift'
end
def tests_pods
pod 'RxTest'
pod 'RxNimble'
end
target 'MainProj' do
project 'MainProj/MainProj.project'
shared_pods
app_pods
target 'MainProjTests' do
inherit! :search_paths
tests_pods
end
end
target 'SubProj1' do
project 'SubProj1/SubProj1.project'
shared_pods
target 'SubProj1Tests' do
inherit! :search_paths
tests_pods
end
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
config.build_settings['SWIFT_VERSION'] = '5.1'
end
end
end
'Git, CocoaPods, Xcode, Shell' 카테고리의 다른 글
[git] git핵심 git remote, push, clone, fetch, merge, rebase (0) | 2020.12.30 |
---|---|
ruby, gem install bundler 에러 "(Gem::FilePermissionError)", global로 설정하여 해결 (0) | 2020.12.29 |
[Xcode] 하나의 프로젝트에 여러 프레임워크 설정, 프로젝트 파일 구성 (Main / Domain / CommonExtension / Pods) (0) | 2020.11.14 |
[Git] Merge Conflict 해결 방법 (0) | 2020.11.01 |
[gRPC] gRPC(google Remote Procedure Call) 사용방법 [미완성] (0) | 2020.06.30 |
Comments