PIYO - Tech & Life -

(少し追記)Xcodeのプロジェクトをコマンドラインからビルド・テストする

Xcode Homebrew

前々からXcodeのプロジェクトをコマンドラインからビルドしたりテストを実行したりしたいなーと思っていたのですが、以前調べたときにお手軽な情報が見つからなくて諦めていました。調べたりなかっただけだとは思うのですが。

(追記:Xcode5でxcodebuildがマシになったそうです。調べたのはそれ以前だったはずなのでしょうがない…!)

最近はCIツールなどが普及してきてさすがにiOSのプロジェクトでもCI使ってるだろうから、コマンドラインからテストを実行する方法も変わってきてるだろうと思い改めて調べてみました。

xctoolの導入

xctoolというxcodebuildを良くしたようなツールがあって、それをつかうといい感じらしいです。

facebook/xctool

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