JenkinsとXcode


以前にあったiTunes Connectへのバイナリ提出の失敗の反省から、個人でもJenkinsを導入してみようと思っていろいろ試しているのだが、中々上手くいかない。

Jenkins自体はよく作り込まれたプロダクトであり、導入自体は非常に簡単だ。自身のパッケージをインストールした直後からサーバサイドJavaで提供されたJenkinsサーバを起動することができ、ローカルでインストールされているならば http://localhost:8080/でJenkinsを起動できる。

そこからXcodeプロジェクトをビルドする場合は、最小で以下のプラグインをインストールすれば良い。

Xcode Plugin

この二つをインストールすることでxcodebuildを起動するJenkinsジョブを簡単に作成することができるはず、なのだが...

簡単なスタンドアロンのプロジェクトは全く問題無い。それこそジョブを作成しただけでビルドが完了するが、問題は以下のようなプロジェクトの場合だ。

  • プロジェクト外のファィルを参照しているプロジェクト
  • 複数のプロジェクトにより構成されているプロジェクト
  • 外部ライブラリィプロジェクトを参照しているプロジェクト

これらはXcode上では普通にビルドできている状態だからといって、Jenkins(xcodebuld)ではビルドが通ると考えてはいけない。

これは悪い例だが、例えばプロジェクト中であるヘッダファイルを参照しており、それがプロジェクト外に配置されているファイルだったとしよう。
Xcode IDEだと全く問題無くビルドできたりするが、Jenkins(xcodebuild)ではこれを許さずこのプロジェクト外に配置しているヘッダを参照している他のヘッダ、モジュールは"file not found"で全てビルドに失敗してしまうのだ。

私がまだxcodebuildに慣れていないからなのだろうが、始める前はIDEでビルドされていればコマンドでも同じようにビルドできるのだろうと簡単に考えたのがまずかった。