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