[iOS][Fabric] Crashlytics を使って iOS アプリのベータ版を配信する

Fabric

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

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」を選択しているか確認してから実行しましょう。

crashlytics-beta-ios01

アーカイブが成功すると、オーガナイザが自動で表示されます。

crashlytics-beta-ios02

以降の作業は、Mac アプリで行うか、コマンドラインで行うかで手順が異なります。

Fabric の Mac アプリから配信する

とりあえずサクッと試したい場合や、コマンドラインの操作に慣れていない場合は、Mac アプリを利用しましょう。Mac アプリを起動している状態でアーカイブを行うと、ステータスバーに通知が表示されます。「Distribute」を選択します。

crashlytics-beta-ios03

配信するテスターを設定します。一度でも配信したことがある場合、テスターがリストで表示されるのでクリックで送信するかしないか選択できます。まだ配信したことがないテスターに配信したい場合、新しくメールアドレスを入力します。メールアドレスは CSV インポートも可能です。

crashlytics-beta-ios04

リリースノートを書きます。この内容はメールの本文に利用されます。

crashlytics-beta-ios05

アップロードが進み…

crashlytics-beta-ios06

アップロード完了です!配信したアプリ一覧とテスターの数などなどが確認できます。

crashlytics-beta-ios07

コマンドで配信する

Jenkins や Circle CI などのようなツール・サービスを使って自動で配信するには、コマンドラインから実行できる必要があります。こちらは Crashlytics.framework の中にコマンドが用意されているので、それを叩くと配信できます。今回は手動で行ってみます。

その前の準備として、IPA ファイルを用意しておく必要があります。先ほどのオーガナイザ画面から「Export」を選択します。

crashlytics-beta-ios02

「Save for AdHoc Deployment」を選択します。

crashlytics-beta-ios0

エクスポートに使用する Provisioning Profile を確認し「Export」を選択します。IPA ファイルの保存場所は、ここではプロジェクト直下にしておきましょう。

crashlytics-beta-ios0-

次に、下記のようなコマンドを叩きます。API_KEYBUILD_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 のバージョンのアプリが確認できるはずです。

crashlytics-beta-ios08

まとめ

Mac アプリを利用する場合でも、コマンドを利用する場合でも、非常に簡単に配信を行うことが出来ます。配信したテスターがどのようにアプリをインストールすれば良いかについては今回触れていませんが、こちらについては別途記事にする予定です。

参考

AWS Cloud Roadshow 2017 福岡