mike-neckのブログ

Java or Groovy or Swift or Golang

Swift Package Manager 5.0 のDevelop バージョンを利用する

swift-nio-ssl に PR を出して早7ヶ月、もはや Swift を忘れた頃に、「ごめんごめん、完全に忘れてた。最新の状態にあわせてくれれば取り込むよ」と言われて、準備をしようとしたところ、 swift-nio-ssl が使っている Swift Package Manager のバージョンが 5.0 にあがっていて、SwiftPM の 5.0 が使えるようになるまで途方に暮れたので、そのメモ。多分誰にも需要がないことであろうと思われる。というか、こんなブログに辿り着くよりも、GitHub の Swift Package Manager リポジトリーにアクセスしたほうが早いぞ。

f:id:mike_neck:20180609045321p:plain


まず、 こちら より、 Swift Package Manager 5.0 の develop バージョンを入手して、インストールします(画像省略)。

次にインストールされたディレクトリーを確認します。

$ ls /Library/Developer/Toolchains/
swift-4.1.3-RELEASE.xctoolchain             swift-5.0-DEVELOPMENT-SNAPSHOT-2019-02-28-a.xctoolchain
swift-4.2.1-RELEASE.xctoolchain             swift-latest.xctoolchain

インストールされたディレクトリーの Info.plistCFBundleIdentifier の値を読みます。

$ /usr/libexec/PlistBuddy -c "Print CFBundleIdentifier:"  /Library/Developer/Toolchains/swift-5.0-DEVELOPMENT-SNAPSHOT-2019-02-28-a.xctoolchain/Info.plist
org.swift.5020190228a

この値を環境変数 TOOLCHAINS に指定すれば、 Swift Package Manager はインストールされたバージョンを使うようになります。

$ export TOOLCHAINS=org.swift.5020190228a
$ swift package --version
Swift Package Manager - Swift 5.0.0 (3a57975e)
$ swift --version
Apple Swift version 5.0-dev (LLVM 3207a50965, Clang 107de882f4, Swift feacc3fd31)
Target: x86_64-apple-darwin18.2.0