Xcode CocoaPods 프로젝트 버전보다 낮은 버전 라이브러리 추가하기
프로젝트에는 Swift 4.2버전의 언어를 사용 중이었는데, 다음의 라이브러리를 추가하려고 시도하였다.
하지만 해당 라이브러리는 Swift4.2 버전까지는 지원하지 않았기 때문에 빌드 과정에서 Syntax오류가 다수 발생하였다.
기존 PodFile 내용은 다음과 같았다.
# Podfile
target 'TestProject' do
use_frameworks!
pod 'FileExplorer', '~> 1.0.4'
end
이렇게만 작성하면 현재 프로젝트의 버전으로 자동으로 빌드할 것이다.
그러나 FileExplorer 라이브러리는 4.2버전을 지원하지 않고, 그렇다고 프로젝트 전체 언어를 낮추기엔 무리가 있었다.
( 기존에 추가된 라이브러리들도 많이 있었고, 프로젝트 코드들도 전부 변경해주어야 했기 때문 )
그래서 FileExplorer 라이브러리는 Swift 3.0버전으로 빌드 시키고 싶다.
예외적으로 다른 버전으로 빌드하는 내용을 PodFile에 추가한다.
다음은 예외처리를 포함한 PodFile 내용이다.
# Podfile
target 'TestProject' do
use_frameworks!
pod 'FileExplorer', '~> 1.0.4'
# 여기서부터
post_install do |installer|
installer.pods_project.targets.each do |target|
if ['FileExplorer'].include? target.name
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
end
# 여기까지
end
내용 추가 후 터미널에서 $ pod install을 수행하면 설치가 될 것이다.
** 만약! "multiple commands produce ~~ info.plist" 문구와 함께 빌드가 실패한다면
Xcode 메뉴에서 File -> WorkSpace Settings -> Build System 을
New Build System (Default)에서 Legacy Build System 으로 변경한 뒤에 다시 빌드한다.
(Xcode 10에서 발생하는 문제로 보인다. 정확한 이유는 잘 모르겠다.... 나중에 알아내면 추가해야겠다)
빌드 성공시 FileExplorer 라이브러리에서 경고가 몇개 뜨는데, 다음 경고가 눈에 띈다.
이 글을 토대로 추론해보면 프로젝트 언어 버전과 라이브러리 언어 버전의 차이가 크면 이 방법으로도 사용이 불가한것으로 보여진다.
Swift 4.2에 발목이 묶인 느낌이다. 추후 5.0으로 올리려면 시간적 소요가 클 것 같다.