[iOS][Fabric] Crashlytics を使って iOS アプリのベータ版を配信する
Crashlytics をベータ版配信に活用しよう
Crashlytics はアプリのクラッシュレポートを収集し、統計を取るためのサービスですが、アプリのベータ版を配信するための Beta Distribution という機能を提供しています。こちらを利用すると、旧 TestFlight や Deploy Gate に近い、ベータ版の配信を行うことができます。
事前に必要なこと
Beta Distribution を利用するには、以下の作業が事前に必要になります。iOS Developer Program に絡む部分は、旧 TestFlight や Deploy Gate と同様です。
- Certificate の作成
- App ID の登録
- テスト対象のデバイスの UUID の登録
- Provisioning Profile の作成
- Fabric アカウントの登録 (こちらを参考)
- テスターのメールアドレス
- Fabric の Mac アプリ (※ Mac アプリからアップロードする場合のみ)
なお、今回は Provisioning Profile は AdHoc 用のものとします。また、配信するテスターにはメールでお知らせし、そこからインストール操作を行う必要があるためテスト対象のデバイスでメールが閲覧できる状態でなければいけません。
Fabric SDK と Crashlytics Kit を導入する
まず初めに、Xcode プロジェクトは既に存在する前提で進めます。Beta Distribution をプロジェクトで利用する場合、Crashlytics を既に利用しているのであれば特別な設定は必要ありません。そのまま利用可能です。もし Crashlytics の導入をまだ行っていない場合は、次の記事の通りに導入してください。
Xcode プロジェクトをアーカイブする
次に、プロジェクトをアーカイブしましょう。Xcode のメニューから「Product」を選び「Archive」を選択してください。このとき、Schema の Device は「iOS Device」を選択しているか確認してから実行しましょう。
アーカイブが成功すると、オーガナイザが自動で表示されます。
以降の作業は、Mac アプリで行うか、コマンドラインで行うかで手順が異なります。
Fabric の Mac アプリから配信する
とりあえずサクッと試したい場合や、コマンドラインの操作に慣れていない場合は、Mac アプリを利用しましょう。Mac アプリを起動している状態でアーカイブを行うと、ステータスバーに通知が表示されます。「Distribute」を選択します。
配信するテスターを設定します。一度でも配信したことがある場合、テスターがリストで表示されるのでクリックで送信するかしないか選択できます。まだ配信したことがないテスターに配信したい場合、新しくメールアドレスを入力します。メールアドレスは CSV インポートも可能です。
リリースノートを書きます。この内容はメールの本文に利用されます。
アップロードが進み…
アップロード完了です!配信したアプリ一覧とテスターの数などなどが確認できます。
コマンドで配信する
Jenkins や Circle CI などのようなツール・サービスを使って自動で配信するには、コマンドラインから実行できる必要があります。こちらは Crashlytics.framework の中にコマンドが用意されているので、それを叩くと配信できます。今回は手動で行ってみます。
その前の準備として、IPA ファイルを用意しておく必要があります。先ほどのオーガナイザ画面から「Export」を選択します。
「Save for AdHoc Deployment」を選択します。
エクスポートに使用する Provisioning Profile を確認し「Export」を選択します。IPA ファイルの保存場所は、ここではプロジェクト直下にしておきましょう。
次に、下記のようなコマンドを叩きます。API_KEY と BUILD_SECRET は既に Xcode プロジェクトの Build Phase に登録してあるものをそのまま利用する形で良いです。配信するテスターは、メールアドレス単位かグループ単位で指定することが出来ます(グループの設定は Fabric の管理コンソールから事前に行っておく必要があります)。
$ ./Crashlytics.framework/submit <API_KEY> <BUILD_SECRET> -emails hoge@gmail.com notifications YES -ipaPath ./FabricTwitterSample.ipa 2015-05-13 22:25:06.794 submit Crashlytics: Crashlytics.framework/submit 1.3.1 (11) 2015-05-13 22:25:10.550 submit Crashlytics: Added Testers/Groups Successfully 200 2015-05-13 22:25:13.051 submit Crashlytics: Uploaded Successfully 202
以上で配信完了です。Fabric の管理コンソールを確認しましょう。先ほどアップロードした IPA のバージョンのアプリが確認できるはずです。
まとめ
Mac アプリを利用する場合でも、コマンドを利用する場合でも、非常に簡単に配信を行うことが出来ます。配信したテスターがどのようにアプリをインストールすれば良いかについては今回触れていませんが、こちらについては別途記事にする予定です。