LoginSignup
37
28

More than 5 years have passed since last update.

Mint で Swift 製のコマンドラインツールを管理する

Last updated at Posted at 2018-02-28

iOS アプリや macOS アプリの開発にあたって、開発を補助するためのコマンドラインツールを使うことがよくあります。その際に、それらのツールを開発環境やビルド環境にどうインストールしてどう管理するか、というのは注意を払っておくべきことのひとつです。

macOS にコマンドラインツールを入れる手段としては Homebrew が手軽でありメジャーです。ただ、実際の開発では、プロジェクトごとに使うツールのバージョンを指定したいことがあると思います。Homebrew はそういった細かい用途には向いていません。

そんな場合に Mint が便利です。Mint は Swift Package Manager ベースで開発された Swift 製コマンドラインツールを管理するためのツールです。

例えば、SwiftLintCarthage といったツールが管理できます。Mint を使うと、複数のバージョンをインストールしておき、バージョンを指定して実行することが可能になります。

Mint のインストール

Mint 自体は Homebrew でインストールできます。

brew tap yonaskolb/Mint https://github.com/yonaskolb/Mint.git
brew install mint

ツールのインストール&実行

Mint でツールをインストールするには次のようにします。

mint install name/repo

引数には GitHub のリポジトリ名を指定します。あるいは git リポジトリの URL でも良いです。

例えば SwiftLint をインストールするには次のようにします。

mint install realm/swiftlint

これを実行すると、Mint 管理下のフォルダ(/usr/local/lib/mint)に対象のソースコードがダウンロードされて Swift PM でビルドされます。

その後、デフォルトでは、グローバル(/usr/local/bin)にコマンドがインストールされます。以後は mint を使わずにツールのコマンドを直接実行できます。

グローバルにインストールしない場合

mint install のオプションとして --global=false を指定すると Mint 管理下にのみインストールされます。この場合、インストールしたツールを実行するには mint run を使います。

例えば Mint 管理下の SwiftLint を実行するには次のようにします。

mint run realm/swiftlint swiftlint

つまり、実行したいコマンドの前に mint run realm/swiftlint をつけるということになります。

コマンドに引数を渡す場合はさらに後ろに続けます。例えば swiftlint version を実行するなら次のようにします。

mint run realm/swiftlint swiftlint version

なお、実は mint run は、まだ mint install されていなかった場合はインストールもしてくれます(この際はグローバルへのインストールは行われません)。

バージョンを指定してインストール&実行

mint install のときに、リポジトリ名の後ろにバージョンを指定すると、指定したバージョンをインストールできます。

mint install realm/swiftlint@0.24.2

mint run のときに、リポジトリ名の後ろにバージョンを指定すると、指定したバージョンを実行できます。

mint run realm/swiftlint@0.24.2 swiftlint

この方法を使うことで、冒頭に書いたような「プロジェクトごとに使うツールのバージョンを指定したい」というニーズに対応可能です。

インストールされているバージョンの確認

mint list コマンドでインストール済みのツールとバージョンが確認できます。

Installed mint packages:
  Carthage
    - 0.26.2
    - 0.28.0
  SwiftLint
    - 0.24.2
    - 0.25.0
37
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
28