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分で作成が可能です(本当)
最近エネルギーの90%を卓球に向けています。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境