前々からXcodeのプロジェクトをコマンドラインからビルドしたりテストを実行したりしたいなーと思っていたのですが、以前調べたときにお手軽な情報が見つからなくて諦めていました。調べたりなかっただけだとは思うのですが。
(追記:Xcode5でxcodebuildがマシになったそうです。調べたのはそれ以前だったはずなのでしょうがない…!)
最近はCIツールなどが普及してきてさすがにiOSのプロジェクトでもCI使ってるだろうから、コマンドラインからテストを実行する方法も変わってきてるだろうと思い改めて調べてみました。
xctoolの導入
xctoolというxcodebuildを良くしたようなツールがあって、それをつかうといい感じらしいです。
xctoolはHomebrewで導入できます。
$ brew update
$ brew install xctool
※注意
2014/03/20時点ではXcode5.1をインストール済みの場合インストールに失敗します。こちらのForkからDownload Zipして適当なところにおいて使ってください。xctool.sh
を使います。
jcayzac/xctool at 067e6bbb26fed73b5f617d377ddd0569da2b8eec
使い方
$ xctool -project ProjectName.xcodeproj \
-scheme ProjectName \
clean build test \
ONLY_ACTIVE_ARCH=NO
こんな感じでプロジェクト名やスキーム名、ビルドやクリーンなどのアクションを指定して実行します。CocoaPodsを使用しているなどの理由でprojectではなくworkspaceを使いたい場合は-workspace ProjectName.xcworkspace
とします。
毎回これをタイプするのは面倒なのでMakefileやRakefileを作っておくと便利です。
# Rakefile
desc 'Build'
task :build do
exec('xctool -workspace MyApp.xcworkspace -scheme MyApp -sdk iphonesimulator build ONLY_ACTIVE_ARCH=NO')
end
task :default => :build