Jenkinsを使ってiOSの自動ビルドおよびテストをする(Jenkinsビルド編)
はじめに
前回の続きで、今回はとりあえずサンプルプロジェクトをJenkinsでビルドしてみます。
前回
Jenkinsを使ってiOSの自動ビルドおよびテストをする(Jenkins準備編) - なんとかするから、なんとかなる
必要のもの
- Apple Developerライセンス(DeveloperとDistributionが必要)
- ビルドするサンプルアプリ(空Projectで良い)のProvisioning Profile
- Git Repositoryからビルドするので、サンプルアプリ生成時に[Create Git repository]にチャックを忘れずに。
Pluginをインストール
Jenkinsを起動したら下記を開きます [Jenkins] - [Manage Jenkins] - [Manage Plugins]
タブで[Available]を選択し、[Filter]で"Xcode"を入力します。
上の画像には出ていませんが、"Xcode integration"を選択して[Download now and install after restart]でインストールする
ちなみに、アドレスバーで下記を入力することで、再起動できます。
localhost:8080/safeRestart
これでPluginの準備は完了です。
JenkinsのJobを作成する
Jobの新規作成
New Itemをクリックします。
JobのGitの設定
Source Code Managementの項目を設定します。
[Git]を選択して、[Repository URL]に作成したサンプルアプリの".git"が入っているところを選びます。 まずは、ビルドするだけなのでBranchはそのままにしておきます。
Xcodeのビルドを設定する
[Build]の[Add build step]で"Xcode"を選択します。 [Target]の項目で作成しておいたサンプルアプリのTargetを指定します。
Code signing & OS X keychain options
[Deveper Team]は"None"のままで、Development Team ID はApple Developer Accountで確認できるIDを入力します。
[Keychan path]は何もいじっていなければ以下を入力。あとkeychainにアクセスするためのPasswordを入力しておきます。
$(HOME)/Library/KeyChains/login.keychain
Advanced Xcode build options
ビルドだけなら必要ないかもしれないですが、以下の設定をしました。
[Clean test reports?]にチェック
[Xcode Schema File]にサンプルアプリのFile名を入力。おそらくTargetと同じだと思います。
Saveする
上記の設定がすべて完了したら、下部の[Save]をクリックしてjobを保存します。
ビルド
設定が完了したら、さっそくビルドです。
[Build Now]をクリックします。
Build Historyが青くなればBuild成功です!
失敗すると赤くなります。
Build History(#××)をクリックして、Console Outputへ進むとエラーの詳細がみれるので調べつつ修正しましょう。
次回
なんかうまくいかないぞQ&A
上記の作業をすべて読んでいれば同じことが書いてあるのですが、作業をしていて引っかかったところをまとめておきます。
Provisioning Profile がないとダメ
ビルドするだけならDeveloperだけで良いのではないかと思っていたのですが、DistributionとProvisioning Profileがないとダメみたいです。
解決方法
Apple Developer Accountで発行できます。
Jenkinsでビルドしたら、couldn't find a Provisioning Profile のエラーが出る。
Jenkinsでビルドしたら、以下のようなエラーが出てくる。今回は下記の方法で解決しました。
Check dependencies No profiles for '{Bundle Identifier}' were found: Xcode couldn't find a provisioning profile matching '{Bundle Identifier}'. Code signing is required for product type 'Application' in SDK 'iOS 10.3'
解決方法
JenkinsのJobの設定の中で
[Build]-[Xcode]-[Code signing & OS X keyChain options]-[DevelopmentTeam]
上記の中のDevelopment Team IDをきちんと指定していできていない可能性があります。
Apple Developer Accountの[Membership]-[Team ID]の項目をコピーしてくる。(DistributionのIDですね)
ちなみに
調べている中で、結構Xcode のGeneralで指定している[Automatically manage signing]を外してManualで指定するって記事がありました。
今回の記事を作成する中では、[Automatically manage signing]はチェックありでよさそうです。
進めていく中でダメだったら、そのとき修正します。
[改訂第3版]Jenkins実践入門 ――ビルド・テスト・デプロイを自動化する技術 (WEB+DB PRESS plus)
- 作者: 佐藤聖規,和田貴久,新井雄介,米沢弘樹,山岸啓,岩成祐樹,川口耕介
- 出版社/メーカー: 技術評論社
- 発売日: 2017/05/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る