나는 iOS 앱을 만들고 카르타고를 사용하여 외부 라이브러리를 만들고 있습니다. 내가 사용하는 라이브러리는 현재 Swift 2와 Swift 3 모두이기 때문에 조금 짜내 야합니다. 따라서 개발을 위해 하나의 Swift 2 브랜치와 하나의 Swift 3 브랜치를 갖고 싶습니다. 그런 다음 라이브러리가 모두 Swift 3과 호환되면 병합합니다.카르타고로 건축 할 때 신속한 툴체인을 선택하는 방법
그러나 Carthage (버전 0.18)를 사용하여 빌드 할 툴체인을 선택할 수 없습니다.
여기 내 Cartfile의 내용입니다 :
# Swift 2 libraries
github "stephencelis/SQLite.swift" ~> 0.10.1
github "Haneke/HanekeSwift"
# Swift 3 libraries
#github "stephencelis/SQLite.swift" "swift3"
#github "Haneke/HanekeSwift" "feature/swift-3"
#github "kitasuke/PagingMenuController"
#github "Alamofire/Alamofire" ~> 4.0
이 현재 carthage update
를 사용하여 작성합니다. 내가 설치 프로그램을 실행할 때 OSX 그들을 설치있는 곳입니다 스위프트 3. 여러 툴체인은 /Library/Developer/Toolchains
에 설치 한 빌드로 전환
$ swift --version
Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31)
Target: x86_64-apple-macosx10.9
$ ls -lh $(which swift)
-rwxr-xr-x 1 root wheel 18K Jul 8 19:52 /usr/bin/swift
지금 내가 원하는 : 여기에 몇 가지 출력이 나는 현재 스위프트이 사용하고 있음을 확인하는 : 나는 Xcode8과 Xcode7 모두가 설치되어
$ ls -lh /Library/Developer/Toolchains
drwxr-xr-x 6 root wheel 204B Sep 30 20:07 swift-2.2.1-SNAPSHOT-2016-04-23-a.xctoolchain
drwxr-xr-x 7 root wheel 238B Sep 30 17:41 swift-3.0-RELEASE.xctoolchain
drwxr-xr-x 7 root wheel 238B Oct 6 20:53 swift-3.0.1-PREVIEW-2.xctoolchain
lrwxr-xr-x 1 root wheel 30B Oct 8 12:51 swift-latest.xctoolchain -> swift-3.0-RELEASE.xctoolchain/
참고 :
$ ls /Applications/Xcode*
/Applications/Xcode.app:
Contents
/Applications/Xcode8.app:
Contents
$ xcodebuild -version
Xcode 7.3.1
Build version 7D1014
을 지금, 나는 다음과 같은 시나리오를 가지고 있다고 할 수 있습니다 :
$ cat Cartfile
github "Alamofire/Alamofire" ~> 4.0
$ carthage update --toolchain com.apple.dt.toolchain.Swift_3_0
*** Fetching Alamofire
*** Checking out Alamofire at "4.0.1"
*** xcodebuild output can be found in /var/folders/wg/fjk346qs7mx8fhplf8_805wm0000gn/T/carthage-xcodebuild.zfHVn5.log
*** Building scheme "Alamofire iOS" in Alamofire.xcworkspace
warning: failed to load toolchain 'com.apple.dt.toolchain.Swift_3_0': Could not find toolchain: com.apple.dt.toolchain.Swift_3_0
난 그냥 작동하지 않습니다. 그래서 제 질문은 :
다른 툴체인을 사용하여 어떻게 카르타고를 만들 수 있습니까?
는 여기에 내가 시도 내용은 다음과 같습니다
- 다른 것들에
swift-latest.xctoolchain
의 심볼릭 링크를 변경. 차이는 없습니다. .bashrc
의 변수PATH
에 도구 체인을 수동으로 추가해도 아무런 차이가 없습니다.$ cat ~/.bashrc export PATH="$PATH:/Library/Developer/Toolchains/swift-2.2.1-SNAPSHOT-2016-04-23-a.xctoolchain/usr/bin/" export PATH="$PATH:/Library/Developer/Toolchains/swift-3.0-RELEASE.xctoolchain/usr/bin/" export PATH="$PATH:/Library/Developer/Toolchains/swift-3.0.1-PREVIEW-2.xctoolchain/usr/bin/"
TOOLCHAINS=com.apple.dt.toolchain.Swift_3_0 carthage build
및 유사과 빌드를 실행하지만, 차이를 (여전히 툴체인을 찾을 수 없습니다)도하지 않습니다.
공유 한 명령은 Xcode 버전이 번들로 제공되는 툴체인을 선택하여 신속하게 툴체인을 선택합니다.세부 사항을 찾는 데 어려움이 있지만'--toolchain'은 대답처럼 보입니다. – griotspeak