肇鑫的技术博客

业精于勤,荒于嬉

命令行下使用Swift 2.3 工具链(Toolchain)的方法

我们知道Xcode 8 beta 同时提供了Swift 3.0 和Swift 2.3来供我们选择。并且我们还知道,可以在Xcode的偏好里,选择对应的工具,如图1-1所示。

图1-1 在Xcode中选择命令行工具

在Xcode中选择命令行工具w750

此时,在终端中查看swift的版本,会是3.0的,如图1-2所示。

代码 1-2 终端查看Swift版本

~ zhaoxin$ swiftc -v
Apple Swift version 3.0 (swiftlang-800.0.42.1 clang-800.0.36.1)
Target: x86_64-apple-macosx10.9
~ zhaoxin$ xcrun swiftc -v
Apple Swift version 3.0 (swiftlang-800.0.42.1 clang-800.0.36.1)
Target: x86_64-apple-macosx10.9

Swift.org官方给出的建议是使用添加环境变量的方式。

$ export PATH=/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin:"${PATH}"

但是这样做只会影响swiftc,不会影响xcrun swiftc。

~ zhaoxin$ export PATH=/Applications/Xcode-beta.app/Contents/Developer/Toolchains/Swift_2.3.xctoolchain/usr/bin:"${PATH}"
$ swiftc -v
Apple Swift version 2.3 (swiftlang-800.10.11 clang-800.0.36)
Target: x86_64-apple-macosx10.9
$ xcrun swiftc -v
Apple Swift version 3.0 (swiftlang-800.0.42.1 clang-800.0.36.1)
Target: x86_64-apple-macosx10.9

阅读xcrun的帮助,我们可以发现:

--toolchain <name> 
        Specifies which toolchain to use to perform the  lookup.  If  no
        --toolchain argument is provided, then the toolchain to use will
        be taken from the TOOLCHAINS environment variable, if present.

OK