JenkinsでXcodeのCI環境を構築

JenkinsでXcodeのCI環境を構築

こんにちは。しょぼんです。

先日、Jenkinsを使ってXcodeのCI環境を構築しましたので、忘れないようにまとめておきます。(クラウド一色のこの時期に今さらJenkins?というツッコミは無視します)

homebrewインストール

これがないと始まらないのでこれに従いインストールします。
たぶん途中でいくつか足りないと怒られますが、何が足りないかコンソールに出ていますので素直に従います。

Jenkinsインストール

$ brew install jenkins

Jenkis起動

java -Dhudson.DNSMultiCast.disabled=true -jar /usr/local/opt/jenkins/libexec/jenkins.war

http://localhost:8080にアクセスし、Jenkinsの管理画面が表示されればインストール完了です。

プラグインインストール

今回はgithubにあるXcodeのソースをビルドしたうえで、出来上がった.ipaファイルをFTPでアップロードしたいのでその為に必要なプラグインをインストールします。Jenkinsの管理->プラグインの管理->利用可能タブ から以下のプラグインをインストールします。

  • Xcode Integrate
  • git client plugin
  • git plugin
  • Publish Over SSH

SSHサーバーの登録

.ipaファイルのアップロード先はJenkinsのグローバル設定にあるので、ジョブを作成する前にサーバーのアドレスを登録しておきます。

ジョブの作成

プロジェクト名

これがジョブの名前になります。

ソースコード管理

今回はgithubを使用するので、Gitを選択します。Repository URLにリポジトリのURLを設定し、Credentialsにはgithubのアカウントを設定しておきます。

ビルドトリガ

一定時間間隔でgitにアクセスし、差分があったらビルドしたいので、「SCMをポーリング」にチェック。今回は1時間おきに実行したいので H/60 * * * * と設定します。(細かい書式は?アイコンをクリックすれば丁寧なヘルプが表示されますのでここでは割愛します。)

ビルド環境

ビルド後に.ipaファイルをFTP経由でアップロードしたいので、「Send files or execute commands over SSH after the build runs」にチェック。すると詳細設定が表示されるので必要な情報を入力します。

General build settings

TargetにはXcodeのターゲット名を指定します。1つしかなければ未入力でもOKです。ConfigurationにはRelease or Debugなどのビルド時のコンフィグ名を指定します。今回は.ipaファイルが必要なので、「Pack application and build .ipa?」にチェックをいれ、.ipa filename patternに希望するファイル名を設定します。

Code signing & OS X keychain options

Change bundle ID

ビルド時にbundle IDの変更が必要な場合はチェック。

New bundle ID

ビルド時のbundle IDを設定します。

Info.plist path

通常は${WORKSPACE}/プロジェクト名/Info.plistでOKです。

Code Signing Identity

ビルド時に使用したいものを設定します。Xcodeで表示される、「iPhone Distribution: Lanchester co.ltd (xxxxxxxxx)」というあれです。

Embedded Profile

プロビジョニングをビルドに含めるかという指定です。今回はAd-Hocビルドを作りたいので指定します。使用したい.mobileprovisionファイルをワークスペース配下に適当に配置し、そのパスを設定します。

Unlock Keychain?

キーチェーン設定がロックされている場合は、チェックを入れます。

Keychain path

通常は${HOME}/Library/Keychains/login.keyでOKです。

Keychain password

キーチェインのアンロックに必要なパスワードを設定します。

Advanced Xcode build options

Xcode Schema File

ターゲット名を指定します。

Custom xcodebuild arguments

エラーが発生することがあるので、CODE_SIGN_RESOURCE_RULES_PATH=”$(SDKROOT)/ResourceRules.plist”を設定します。(ここ詳細が不明です)

Build output directory

ipaファイルを書き出したいディレクトリを指定します。

ビルド後の処理

成果物を保存

build/**/*.ipaと指定します。

これで設定がすべて完了です。すぐに結果を確認したい場合は左メニューの「ビルド実行」からビルドが作成できます。
ここまで来るのに実は約2日かかったのですが、一度ジョブを作ってしまえば以降は複製できるので5分で作成が可能です(本当)

TAG

  • このエントリーをはてなブックマークに追加
しょぼん
取締役 しょぼん syobon

最近エネルギーの90%を卓球に向けています。