連載
» 2014年05月23日 18時00分 公開

iOSアプリ開発でもCI/継続的デリバリしようぜ(3):Jenkinsでビルド・テスト・カバレッジ出力・コード静的解析を自動化する (3/4)

[諏訪悠紀,アンダースコア]

ソースコード管理の設定

 まずはリポジトリの設定です。[ソースコード管理]のセクションで「Git」を選択し、Repository URLにGitリポジトリのURLを入力してください。また、[Branch Specifier]はデフォルトでmasterブランチが設定されていますが、特定のブランチを対象としたい場合は設定を変更するようにしましょう。ここでは、developブランチを対象としました。

図7 ソースコード管理の設定

[ビルド・トリガ]の設定

 次にジョブの実行タイミングの設定です。ジョブをどのタイミングで実行するかは[ビルド・トリガ]セクションで設定できます。以下の3つのトリガーから好きな実行タイミングを設定します。これらのトリガーは複数設定することも可能です。

  • 【1】他のプロジェクトのビルド後にビルド

 特定のジョブのビルドが完了した後にビルドします。ビルドとテストのジョブを分けたいときなどに便利な設定です。

  • 【2】SCMをポーリング

 リポジトリをポーリング(更新がないか定期的にチェック)します。ポーリングの間隔はcronライクな書式で設定できます。リポジトリにpushされたタイミングで自動的にビルドできるようになります。

  • 【3】定期的に実行

 決まった時間に定期的にジョブを実行します。実行する時間はポーリングの設定と同様、cronライクな書式で設定できます。

 ここでは「SCMをポーリング」をチェックし、スケジュールを「H/15 * * * *」(15分ごとにポーリングを実行)に設定しましょう。

図8 [ビルド・トリガ]の設定

ビルドの設定

 次にビルドの設定に移ります。ここでは、ジョブを実行するときに処理を行う流れと、その処理の設定を行います。今回は、以下の順番で処理を行うように設定してみましょう。

  1. CocoaPodsのコマンドの実行(pod install)
  2. Xcodeプロジェクトのビルド(ipaファイルの生成)
  3. xcodebuildコマンドによるテストの実行
  4. Gcovrによるテストのカバレッジファイルの出力
  5. OCLintによるソースコードの静的解析


  • 【1】CocoaPodsコマンドの実行

 まずは、CocoaPodsでインストールしたライブラリのアップデートを行う処理を追加する必要があります。[ビルド手順の追加]から[Update CocoaPods]を選択してください。[Clean "Pods" folder]にチェックを入れると、前回のビルドで生成した「Pods」ディレクトリをクリーンします。

図9 [Update CocoaPods]の設定
  • 【2】Xcodeプロジェクトのビルド

 次に、Xcodeプロジェクトのビルドの処理を追加しましょう。「ビルド手順の追加」から「Xcode」を選択してください。Xcodeプロジェクトのビルドに関する設定項目が表示されます。設定項目が多いので、以下の表にまとめました。1つずつ確認しながら設定してください。

 [General build settings]

 ビルドの一般的な設定項目です。ビルド前に行っておいてほしい処理や、ipaファイルのファイル名や出力先などを設定できます。

表1 General build settingsの設定項目
設定項目 解説 設定値
Target ビルドのターゲット KiwiSample
Clean before build? ビルドの実行前にbuildディレクトリを削除するか Yes
Allow failing build results? xcodebuild実行時の失敗を許可するか No
Generate Archive? .xcarchiveファイルを作成するか No
Configuration 対象とするConfigration(デフォルトではDebugかRelease) Debug
Pack application and build .ipa? .ipaファイルを作成するか Yes
.ipa filename pattern .ipaファイルの名前のパターン KiwiSample-${VERSION}-${BUILD_DATE}
Output directory .ipaファイルの出力先 なし(buildディレクトリ直下)

 [Code signing & OS X keychain options]

 ビルドに使う認証情報とKeychainの設定項目です。Jenkinsを動作させるマシンが開発マシンと異なる場合は、Jenkinsを動作させるマシンでiOSアプリがビルドできるように、認証情報を設定する必要があります。

 あらかじめ、KeychainをiOS Developer ProgramのCertificateに登録しておいたり、Provisioning Profileをリポジトリに含めてJenkinsを動作させるマシンからアクセスできるようにしておいたりする必要があります。Jenkinsを動作させる環境に合わせて設定してください。

表2 Code signing & OS X keychain optionsの設定項目
設定項目 解説 設定値
Code Signing Identity Certificateの名前 なし(Xcodeプロジェクトの設定を適用)
Embedded Profile Provisioning Profileのファイル名 なし(Xcodeプロジェクトの設定を適用)
Unlock Keychain? Keychainのロックを解除するか Yes
Keychain path .keychainファイルの場所 ${HOME}/Library/Keychains/login.keychain
Keychain password .keychainファイルを開くためのパスワード なし

 [Advanced Xcode build options]

 xcodebuildコマンドに関する設定項目です。xcodebuildコマンドを実行するときの詳細な設定を変更できます。

表3 Advanced Xcode build optionsの設定項目
設定項目 解説 設定値
Clean test reports? テストの結果の出力ファイルをクリーンするか Yes
Xcode Schema File ビルドの対象とするScheme なし(全てのSchemeを対象)
SDK ビルドに使用するSDK なし(Xcodeプロジェクトの設定を適用)
SYMROOT ビルドに使用するSYMROOT なし(Xcodeプロジェクトの設定を適用)
Custom xcodebuild arguments xcodebuildコマンドに付加するコマンドライン引数 なし
Xcode Workspace File .xcworkspaceのファイル名 KiwiSample
Xcode Project Directory .xcodeprojが存在するディレクトリ なし
Xcode Project File .xcodeprojのファイル名 KiwiSample
Build output directory 出力ファイルの保存先 なし

 [Versioning]

 バージョンに関する設定項目です。今回は使用しませんが、ここの設定を編集すると、CFBundleShortVersionStringとCFBundleVersionをJenkins側で更新できます。

 例えば、Technical Numberに${BUILD_NUMBER}を設定することで、CFBundleVersionをJenkinsのジョブ番号と合わせるなどといったこともできます。

表4 Versioningの設定項目
設定項目 解説 設定値
Provide version number and run avgtool? バージョン番号に関する設定を編集するか No
Marketing version CFBundleShortVersionStringの設定値 なし(Xcodeのプロジェクト設定を適用)
Technical version CFBundleVersionの設定値 なし(Xcodeのプロジェクト設定を適用)

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。