32
Jenkins を使用して アプリの配布を自動化する 2014.09.18 @ngyoi Xcodeプロジェクトをビルド TestFlightにアップロードとSlackに通知

Jenkins を使用してアプリの配布を自動化する

  • Upload
    ngyoi

  • View
    577

  • Download
    4

Embed Size (px)

DESCRIPTION

Technology

Citation preview

Page 1: Jenkins を使用してアプリの配布を自動化する

Jenkins を使用して アプリの配布を自動化する

2014.09.18 @ngyoi

XcodeプロジェクトをビルドTestFlightにアップロードとSlackに通知

Page 2: Jenkins を使用してアプリの配布を自動化する

本日の流れ

• Jenkins とは?

• Jenkins でビルドから配布・通知までの設定

• 最後に

Page 3: Jenkins を使用してアプリの配布を自動化する

Jenkins とは?

Page 4: Jenkins を使用してアプリの配布を自動化する

Jenkins とは?

• 継続的インテグレーションツール

• ざっくりいうと、ビルドやテストを継続的に実行するためのツール

Page 5: Jenkins を使用してアプリの配布を自動化する

Jenkins でビルドから配布・通知までの設定

Page 6: Jenkins を使用してアプリの配布を自動化する

設定を始める前に

• Jenkins 氏を怒らせると大概よくないことが起こります

• 右のようなJenkins の怒った画像が表示されるとページにアクセス出来なくなる可能性があります

Page 7: Jenkins を使用してアプリの配布を自動化する

ダッシュボード画面

Page 8: Jenkins を使用してアプリの配布を自動化する

Jenkinsのジョブを作成

Page 9: Jenkins を使用してアプリの配布を自動化する

Jenkinsのジョブを作成

• ジョブ名の欄にジョブ名を入力する

• [フリースタイル・プロジェクトのビルド] を選択

• [OK] をクリック

Page 10: Jenkins を使用してアプリの配布を自動化する

プロジェクト名と説明

Page 11: Jenkins を使用してアプリの配布を自動化する

プロジェクト名と説明

• プロジェクト名と説明を入力

• [古いビルドの破棄] 古いビルドを破棄したい場合はチェックする(今回はチェックを入れない)

Page 12: Jenkins を使用してアプリの配布を自動化する

Slack Notifications

Page 13: Jenkins を使用してアプリの配布を自動化する

Slack Notifications• Slack に通知するチャンネルとタイミングを設定します

• [Project Channel] 通知するチャンネル名を指定

• [Notify ~] 通知したいタイミングにチェックを入れます

• [ビルド~] 使用したことがないのでどのような機能か分かりません

Page 14: Jenkins を使用してアプリの配布を自動化する

ソースコード管理

Page 15: Jenkins を使用してアプリの配布を自動化する

ソースコード管理• 今回は Git を使用するので Git にチェックしてください

• [Repositories] の [Repository URL] にリポジトリのURLをしてします

• 注意点として Bitbucket の クローンURL を見ると修正前のURLになっていますが、Jenkinsでは修正後のURLで入力してください

• 修正前 : https://[email protected]/username/repo.git

• 修正後 : https://bitbucket.org/username/repo.git

Page 16: Jenkins を使用してアプリの配布を自動化する

ビルド・トリガ

Page 17: Jenkins を使用してアプリの配布を自動化する

ビルド・トリガ• ジョブの実行タイミングの設定します

• 今回は [SCMをポーリング] を使用します

• リポジトリをポーリングし、更新されたタイミングで自動的にビルドを行います

• 今回は、5分おきに更新がないかチェックします

Page 18: Jenkins を使用してアプリの配布を自動化する

Xcode General build settings

Page 19: Jenkins を使用してアプリの配布を自動化する

Xcode General build settings• Xcode のビルドの設定を行います

• [Target] には、ターゲット名を入力します

• [Clean before build?] ビルドの実行前にbuildディレクトリを削除するのでチェックを入れます

• [Configuration] 対象とするConfigrationを設定します(デフォルトで Release になっているのでそのまま設定します)

• [Pack application and build .ipa?] .ipaファイルを作成するのでチェックを入れます

• [.ipa filename pattern] .ipaファイルの名前のパターンを入力します

Page 20: Jenkins を使用してアプリの配布を自動化する

Xcode Code signing & OS X keychain options

Page 21: Jenkins を使用してアプリの配布を自動化する

Xcode Code signing & OS X keychain options

• ビルドに使う認証情報とKeychainの設定を行います

• [Embedded Profile] Provisioning Profileのファイル名を設定します(別途連絡)

• [Unlock Keychain?] Keychainのロックを解除するのでチェックを入れます

• [Keychain path] .keychainファイルの場所を指定します ${HOME}/Library/Keychains/login.keychain

Page 22: Jenkins を使用してアプリの配布を自動化する

Xcode Advanced Xcode build options

Page 23: Jenkins を使用してアプリの配布を自動化する

Xcode Advanced Xcode build options

• xcodebuildコマンドに関する設定を行います

• [Clean test reports?] テストの結果の出力ファイルをクリーンするのでチェックを入れます(今回はテストしないので関係ないですが…)

• [Xcode Project File] .xcodeprojのファイル名を入力します※ファイル名と拡張子を入力します

Page 24: Jenkins を使用してアプリの配布を自動化する

ビルド後の処理

Page 25: Jenkins を使用してアプリの配布を自動化する

ビルド後の処理• [ビルド後の処理の追加] から [Upload to Testflight] を選択します

• [ビルド後の処理の追加] から [Slack Notifications] を選択します

• デフォルトのままで特に設定の必要はありません

Page 26: Jenkins を使用してアプリの配布を自動化する

ビルドの実行

Page 27: Jenkins を使用してアプリの配布を自動化する

ビルドの実行

• 赤枠の [ビルド実行] を押すとビルドが開始されます

• 成功すると青色になり、何らかの理由で失敗すると赤色になります

Page 28: Jenkins を使用してアプリの配布を自動化する

参考サイト• Jenkinsでビルド・テスト・カバレッジ出力・コード静的解析を自動化するhttp://www.atmarkit.co.jp/ait/articles/1405/23/news031.html

• Bitbucket のリポジトリをJenkinsで使用する際に401になる問題http://serverfault.com/questions/558666/failed-to-connect-to-repository-401-on-jenkins-codebase-git

Page 29: Jenkins を使用してアプリの配布を自動化する

最後にプラグインとか使えば

色々出来ます

Page 30: Jenkins を使用してアプリの配布を自動化する

コード・カバレッジ

Page 31: Jenkins を使用してアプリの配布を自動化する

appledocによるDocument生成

Page 32: Jenkins を使用してアプリの配布を自動化する

ご清聴ありがとうございました