swiftenvでSwiftのバージョンを管理する
swiftenvでSwiftのバージョンを管理する
Swift3.0の開発版が公開されてからSwiftの2系と3系の間のタイミングである今、iOSなどのアプリ開発ではSwiftの2系、Swift3の変更点の確認ではSwift3.0というような使い分けをする場面が出てくるかもしれません。
そのような時こそSwiftのバージョン管理をしてくれるswiftenvがオススメです。
Homebrewからswiftenvをインストールする
Macで簡単に設定をするためにHomebrewからインストールします、ターミナル上から下記コマンドを入力します。
brew install kylef/formulae/swiftenv
swiftenvのpathを設定する
インストールが完了したらswiftenvのパスを設定します、使ってるシェル環境に合わせて設定しましょう。
bash
~/.bash_profile
の部分は環境によって変わると思うので、環境に合わせて~/.bashrc
なり変更してください
echo 'if which swiftenv > /dev/null; then eval "$(swiftenv init -)"; fi' >> ~/.bash_profile
zsh
echo 'if which swiftenv > /dev/null; then eval "$(swiftenv init -)"; fi' >> ~/.zshrc
fish
echo 'status --is-interactive; and . (swiftenv init -|psub)' >> ~/.config/fish/config.fish
swiftenvを反映する
swiftenv側で設定してるSwiftを参照するように反映させます。
swiftenv rehash
swiftenvを動かしてみる
swiftenv
コマンドを入力してヘルプが出れば設定が正常に完了になります、基本的にはpyenvやrbenvと使い方は変わりません。
$ swiftenv Usage: swiftenv [--version] <command> version Displays the current active Swift version versions Lists all installed Swift versions global Sets the global version of Swift local Sets the local application-specific version of Swift install Installs a version of Swift uninstall Uninstalls a specific Swift version rehash Installs shims for Swift binaries Visit https://swiftenv.fuller.li for more info.
現在の環境で設定されてるSwiftのバージョンを確認する
swiftenvで管理してるSwiftのバージョンのうち、設定してるバージョンを確認します。
system
というのがswiftenvで管理する前からインストールされているSwiftになります。
$ swiftenv version system (set by /Users/__moai/.swiftenv/version)
swiftenvで管理してる複数のSwiftのバージョンを確認する
swiftenvで管理してるSwiftのバージョンの一覧を確認します。
下記のようにsnapshotのタグ名で管理されていることが分かります。
$ swiftenv versions * system 3.0-preview-1-SNAPSHOT-2016-05-31-a DEVELOPMENT-SNAPSHOT-2016-05-09-a 2.2
設定するSwiftのバージョンを変更する
swiftenvでSwiftのバージョンを切り替える際は、local
とglobal
という概念の2種類があります。
local
がそのディレクトリ内だけでSwiftのバージョンを変えたい場合、global
が全てのディレクトリでSwiftのバージョンを変えたい場合に使い分けます。
まずはglobalでSwiftのバージョンを変更してみます。
swiftenv global 3.0-preview-1-SNAPSHOT-2016-05-31-a
Swiftのバージョンが変わったどうか確認します。
$ swift --version Apple Swift version 3.0-dev (LLVM 3863c393d9, Clang d03752fe45, Swift e996f0c248) Target: x86_64-apple-macosx10.9
$ swiftenv version 3.0-preview-1-SNAPSHOT-2016-05-31-a (set by /Users/__moai/.swift-version)
このようにSwiftから見ても、swiftenvから見てもバージョンを変更したことが確認できます。
それでは続いてlocalでSwiftのバージョンを変更してみます。
ここではhoge
ディレクトリを新しく作成し、その中でSwiftのバージョンをsystem
に変更します。
mkdir hoge cd hoge swiftenv local system
ここで変わったことを確認します。
$ swift --version Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31) Target: x86_64-apple-macosx10.9
$ swiftenv version system (set by /Users/__moai/hoge/.swift-version)
Swiftのバージョンが先ほどと同じswiftenvを入れる前のSwiftのバージョンになっていることが確認できました。
仕組みとしてはlocal
で切り替えたSwiftのバージョンは、ディレクトリ内に.swift-version
というファイルが作成されており、その中でSwiftのバージョンが記載されています。
なのでhogeディレクトリ内のSwiftのバージョンを再度globalのSwiftのバージョンに変更したい場合はこの.swift-versionを削除すれば反映されます。
rm .swift-version
おわりに
このようにSwiftのバージョン管理を楽にしてくれる便利なswiftenv
の紹介でした。
みなさんもどんどんバージョンアップが進むSwiftの変更を追いかける際の便利な道具として是非試してみてください。