Carthage 0.12をリリースしました
昨年のエントリーに書いたように、Carthageのコミッターをしているid:ikesyoです。もう3日前になりますが、最新バージョンの 0.12: All Your Frameworks Are Belong To Usがリリースされました!🎉
今回のリリースで大きなトピックだと個人的に思う以下の3つを紹介します。
Carthage will now build all frameworks from all the projects in the repository
これまでCarthageでは、Dynamic frameworkのShared schemeを含む、ディレクトリ階層で最初に見つかった.xcodeproj
/.xcworkspace
のプロジェクト1つだけをビルドの対象としていました。https://github.com/ankurp/Dollar.swiftのような複数の.xcodeproj
によって複数のframeworkを提供するようなリポジトリとは相性が悪かったのですが、0.12ではDynamic frameworkのShared schemeを含んでさえいれば、全てのプロジェクトがビルド対象になるよう変更、改善されました。
archive
now accepts multiple framework names and will archive all the frameworks from the current repository if no names are given
archive
コマンドはCarthage/Build
以下にあるframeworkをまとめたzipファイルを生成するコマンドです。生成したzipファイルをGitHub Releaseに添付することで、Carthageがビルド済みバイナリーとしてそのframeworkを利用することができるようになっています。
これまでこのコマンドはcarthage archive Himotoki
のように、アーカイブ対象のframework名を必ず1つだけ指定する必要がありました。それが0.12からはcarthage archive Cent Dollar
のように複数のframework名を指定することができるようになりました。
またcarthage archive
とパラメーターを指定しないと、現在のプロジェクトのframeworkを全てアーカイブする(依存先のframeworkは含まない)、という使い方もできるようになっています。この場合の対象はcarthage build --no-skip-current
としてビルドされるようになるものと同一です。1つ目の変更と合わせて使いやすくなったのではないかと思っています。😀
この変更は私が実装したものになります 💪
build
, checkout
, and update
now take an optional list of dependencies
最後の1つです。今まではcarthage update
として全ての依存ライブラリーをアップデートすることしかできませんでしたが、これも0.12からarchive
コマンドと同様に、carthage update Alamofire ReactiveCocoa
のようにアップデート対象を指定することができるようになりました。
build
, checkout
コマンドもこの改善をしていて、carthage build Alamofire
のように特定のfraemworkのみを再ビルドすることもできます。これらはかなり以前から要望されていたものだったので、実装、リリースすることができてとても嬉しいですね。
この変更も私が実装しました 💪
すでに幾つかバグが報告されているため、近々0.12.1もリリースされると思います。Carthageユーザーの皆様におかれましてはバグ報告や要望など何かあれば、リポジトリのissueだけでなく、Twitterなどでも連絡いただければ確認しますのでお気軽に!