TestFlight+JenkinsでiOSアプリのベータ版配信を自動化する:iOSアプリ開発でもCI/継続的デリバリしようぜ(4)(4/4 ページ)
現代の開発現場において欠かせないCI/継続的デリバリを、iOSアプリ開発に適用するためのツールやノウハウを解説する連載。今回は、iOSアプリのベータ版配信サービスTestFlightの概要と使い方、Jenkinsと組み合わせたベータ版配信の自動化手順について。
Jenkinsを使ってベータ版配信を自動化しよう
ここまででTestFlightにIPAファイルをアップロードする準備が整いました。本稿では、JenkinsのTestFlightプラグインを使ってアップロードします。Jenkinsのインストール手順については前回記事の「HomebrewでJenkinsの環境構築」を参考にしてください。
TestFlightプラグインのインストール
まず、JenkinsにTestFlightプラグインをインストールしましょう。プラグインをインストールするには、Jenkinsのダッシュボード画面の左側に表示されているメニューから「Jenkinsの管理」を選択し、「プラグインの管理」を開きます。
そして「利用可能」タブを開き、上部の検索バーに「TestFlight」と入力すると、TestFlightプラグインが表示されるのでチェックを入れます。最後に、「再起動せずにインストール」をクリックしてインストールします。
Jenkins側でのTestFlightの設定
インストールが完了したら、次にTestFlightの設定を行います。TestFlightプラグインはTestFlight Upload APIを利用してアップロードを行うため、API TokenをJenkinsに登録しておく必要があります。
まず「Jenkinsの管理」を選択し、「システムの設定」を開きます。この設定画面の一番下にTestFlight用の設定項目が追加されているので、「追加」ボタンをクリックして設定を追加します。
ここで設定できる項目は次の通りです。
設定項目 | 説明 |
---|---|
Token Pair Name | 設定名。ジョブの設定時に選択肢として表示される |
API Token | TestFlightで作成したアカウントのAPIキー |
Team Token | TestFlightで作成したチームのAPIキー |
API TokenはTestFlightの右上のメニューから「Account Settings」を選択し「UploadAPI」画面を開くと表示されます。
Team Tokenは右上のチーム名をクリックして表示されるメニューから「Edit Info」を選択し「Team Info」画面を開くと表示されます。
設定項目を入力したら「保存」をクリックして終わりです。
ジョブへの作業の追加
次に、iOSアプリをビルドするジョブにTestFlightにアップロードするために必要な作業を追加しましょう。
本稿では、前回作成したiOSアプリをビルドするジョブに追加して設定する手順を解説しますので、本稿からご覧になった方は前回の記事を参考にジョブを作成してください。ジョブの設定を編集するには、ジョブ画面の左メニューから「設定」をクリックします。
まず、Xcodeプロジェクトをビルドする作業の設定を編集します。今回はAdHoc版のProvisioning Profileを使ってIPAファイルをビルドしたいので、Provisioning Profileの設定を上書きするように設定します。「Code signing & OS X keychain options」の「CodeSigning Identity」にCertificateの名前を、「Embedded Profile」にAdHoc版のProvisioning Profileのファイル名を入力してください。
次に、TestFlightにIPAファイルをアップロードする作業を追加します。設定画面の一番下にある「ビルド後の処理の追加」をクリックし、「Upload to TestFlight」を選択します。
設定項目は次の通りです。
設定項目 | 解説 | 設定値 |
---|---|---|
Token Pair | アップロードに使用するToken | 上記手順で作成したToken Pair |
IPA/APK Files (optional) | IPAファイル名 | 未設定(デフォルトで成果物が対象になるため) |
dSYM File (optional) | dSYMファイル名 | 未設定 |
Additional Uploads | 追加でアップロードするファイル | 未設定 |
Build Notes | ビルドのノート(コメント) | 未設定 |
Append changelog to build notes | ビルドのノートにChangeLog(コミットコメント)を追記するか | 有効 |
Distribution Lists | 配信するDistribution Listの名前(複数指定可能) | 上記手順で作成したDistribution Listの名前 |
Notify Team | 配信するテスターにメールで通知するか | 有効 |
Replace Build | 同じビルドバージョンのファイルを置き換えるか | 無効 |
Debug Upload | アップロード中にコンソールにデバッグログを表示するか | 有効 |
設定が終わったら「保存」をクリックします。これでJenkinsを使ってビルドしたiOSアプリをTestFlightにアップロードするジョブが完成しました。
実行してみよう
実際にビルドを実行してみると、TestFlightにアップロードされ、Distribution Listに登録してあるテスターのメールアドレス宛てに通知が届くはずです。「INSTALL」をクリックすると、アプリをインストールできます。
コラム「TestFlightのMac用アプリの活用」
本稿では、Jenkinsを使ってアップロードする手順を解説していますが、TestFlightにはもちろん手動でアップロードすることも可能です。一番ポピュラーな方法はブラウザーからIPAファイルをアップロードする方法ですが、TestFlightではMacアプリも用意してくれています。
Macアプリは、次のURLからダウンロードできます。
このMacアプリを使うと、FinderでIPAファイルを表示した状態で右クリックメニューからアップロードが行えるようになります。TestFlightに緊急でアップロードしたいときなどに活用できそうですね。
次回は、クラッシュログ解析サービス「BugSense」を組み合わせる
次回は、iOSアプリのクラッシュの原因やバグの解決には欠かせない、クラッシュログ解析サービス「BugSense」について解説する予定です。BugSenseを組み合わせることによって、ベータ版として配信したiOSアプリのテストをより効果的に運用できます。ぜひご期待ください。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- グリーはいかにしてJenkinsを導入したのか(2):JenkinsでCIすればiOSアプリのビルドは、もう面倒くさくない
App Storeへのアプリ公開を前提としたXcodeを使った開発を、継続的インテグレーションするための方法を紹介する。 - DevOps時代の開発者のための構成管理入門(4):膨大なビルド・テストで泣かないための継続的統合/CI実践ノウハウ
「DevOps」という言葉にもあるように、ソフトウェア構成管理は、インフラ運用に取り入れられるなど、変わりつつある時代だ。本連載では、そのトレンドにフォーカスして、現在のソフトウェア開発に有効な構成管理のノウハウをお伝えする。今回は、Jenkinsをはじめ、ツールが格段に使いやすくなってきた継続的インテグレーションについて、概要やメリットに加え、実践ノウハウを事例とともに紹介。 - かんばん!〜もし女子高生がRedmineでスクラム開発をしたら(終):Hud美さんと学ぶRedmine×Jenkinsの神アジャイル
本連載は、ちょっととぼけた女子高生の姉妹が今注目のアジャイル開発手法である「スクラム」とプロジェクト管理ソフトの「Redmine」を使って、システム開発をするというフィクションです。今回は、継続的インテグレーションとJenkinsとは何か紹介し、RedmineやGitとの連携方法を解説します。 - ここが変わった! iOS 7まとめのまとめ(2):便利になったXcode 5新機能7選とAuto Layout入門
大きく変化したiOS 7に戸惑う多くの開発者/デザイナのために、役立つブログ記事をまとめて紹介していく、まとめ連載。強化されたデバッグ機能、Git連携機能、テストフレームワーク「XCTest」とテスト管理機能、OS X Serverと連携するCI(継続的インテグレーション)機能「Bots」などに関するブログ記事をまとめて紹介します。 - iOS SDKで始めるObjective-C入門(2):iOSアプリ開発初心者に捧ぐ開発環境Xcodeの概要とインストール
Windowsを使っていたけど、iOSアプリを作るためにMacを使い始めた初心者を対象に、開発ツールXcode/iOS SDKを使ってiPhone/iPadアプリを作る方法を、プログラミング言語「Objective-C」の書き方/文法を交えて解説。今回は、iOSアプリを開発するうえで必要なプログラミング言語Objective-Cや統合開発環境「Xcode」の概要、環境構築の仕方などを紹介 - Jenkinsの生みの親が語る、継続的インテグレーションの未来
JJUG CCC 2011 Spring基調講演レポート