CarthageはCacheを活用する

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

今日では、macOSやiOSアプリをはじめとしたアップル製品向けのアプリを開発するときに一度は使ったことがあるであろうCarthageだが、うまく使いこなせていないせいで、不必要にビルド時間を長時間かさせてしまっていることがあったりする。ここでは、ビルド時間短縮の方法として、Cacheを使う方法を書いてみたい。

Carthageではパッケージをインストールするときに通常の設定ではビルドを行うため、パッケージの数が増えるほど必然的にビルド時間が増える。初めてパッケージをインストールする場合は必然的に一からビルドする必要があるが、それ以降はすでにバイナリーがあるはずなので、一からビルドし直す必要があるパターンは通常はほとんどない。

そのため、通常は --cache-builds オプションをつけることで、すでに適切なビルドがあればそれを利用して、わざわざビルドをする必要がなくなる。パッケージを更新する場合でもアップデートが発生したパッケージと発生しなかったパッケージに分かれるため、前者のみをビルドし直すことになる。

これによって、これまで当該オプションを付けずにビルドしていてビルド時間があまりにも長かったことに四苦八苦していた開発者はこれだけでもかなり改善されるだろう。

とはいえ、Cacheを使う方法でも時間短縮には限界がある。現状ではXcodeのバージョンが変わった場合は実質的にほぼ全てのフレームワークを再ビルドする必要に迫られる。Swiftではバージョン5以降ではABIの安定化は行われたが、各フレームワークでは設定などによってその恩恵を受けられるとは限らないため、Carthageの設定ではビルドしたXcodeのバージョンが違う場合はビルドし直すようになっているためである。とはいえ、これはXcodeのアップデートがでたときに考慮する必要があるということであるため、普段からそれを考慮しなければならないというわけではない。

今回は、Carthageのビルド時にcacheを使う方法を書いてみた。コマンドのオプションは見落とす可能性があり、それによってツール類をうまく使いこなせていない場合があるので、是非ともうまく使いこなせるように調べてみるのも良いだろう。

タイトルとURLをコピーしました