开源版本的 Swift 已经是 2.2 了,不过相对于 2.1 并没有什么特别的改进。Swift 现在支持 OS X 和 Ubuntu,在 Ubuntu 上支持 14.04 和 15.10 两个版本,你可以在这个页面下载最新的编译版本(目前还没有稳定的正式版)现在我就说说如何在这两个平台上使用它。
OS X
代码签名
在下载的 pkg 安装包名字右侧应该有一个小锁,点击这个小锁查看详细的内容,电子签名就是 Developer ID Installer: Swift Open Source (V9AUD2URP3) ,如果不是,那么你下载的pkg可能被篡改了,重新下载吧:)
安装
对于 OS X,你可以直接在最新的 Xcode 7.1.1中体验开源版本的 Swift——不过,你还是需要下载额外的扩展包。
Playground 目前还不能支持这个方法。对于提交到 AppStore 的应用,你仍然需要使用 Xcode自带的 Swift 版本编译!
首先,运行下载的 PKG 安装包,它会给你安装一个 Xcode 工具链到 /Library/Developer/Toolchains/ ;
彻底关闭退出 Xcode,然后打开终端,使用如下命令运行 Xcode :
1 |
$ xcrun launch-with-toolchain /Library/Developer/Toolchains/swift-latest.xctoolchain |
这时候打开的 Xcode 就是使用了开源版 Swift 的 Xcode 了。
如果你退出了 Xcode,那么下次运行还是需要上边的命令的——否则就是默认的自带 Swift 版本。
Linux
下载 tar 压缩包,它的名字应该是这样的: swift-<VERSION>-<PLATFORM>.tar.gz , .sig 文件是数字签名。
如果这是你第一次下载安装,那你需要安装 PGP 密钥:
1 2 3 4 |
$ gpg --keyserver hkp://pool.sks-keyservers.net \ --recv-keys \ '7463 A81A 4B2E EA1B 551F FBCF D441 C977 412B 37AD' \ '1BE1 E29A 084C B305 F397 D62A 9F59 7F4D 21A5 6D5F' |
或者直接下载: $ wget -q -O - https://swift.org/keys/all-keys.asc | gpg --import -
如果你之前安装过了,就跳过。
验证签名
使用下面命令来验证 Swift 的数字签名:
1 2 3 4 5 |
$ gpg --keyserver hkp://pool.sks-keyservers.net --refresh-keys Swift $ gpg --verify swift-<VERSION>-<PLATFORM>.tar.gz.sig //记得改包的名字! ... gpg: Good signature from "Swift Automatic Signing Key #1 <swift-infrastructure@swift.org>" |
如果得到 BAD signature 这样的回复,那说明你下载的包有问题,重新下载吧?
如果得到如下提示:
1 2 |
gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. |
执行如下代码修复:
1 2 3 |
$ wget -q -O - https://swift.org/keys/automatic-signing-key-1.asc | gpg --import - $ wget -q -O - https://swift.org/keys/release-key-swift-2.2.asc | gpg --import - |
安装
使用 $ tar xzf swift-<VERSION>-<PLATFORM>.tar.gz 解压压缩包。
把 Swift 工具链添加到你的环境 $ export PATH=/path/to/usr/bin:"${PATH}"
安装依赖 $ sudo apt-get install clang 目前swiftc还依赖clang++。
这样,你就可以使用 swift 命令来编译项目或者运行 REPL 了。
最后,祝好运:)
本文由 落格博客 原创撰写:落格博客 » 使用开源版本的 Swift
转载请保留出处和原文链接:https://www.logcg.com/archives/1368.html