弊社ではモバイルアプリケーションのBeta配信に、Fabric Crashlyticsを利用しています。
Web上にいくつか記事がありますが、部分的な記載であったり、少し環境が古かったりするので今回まとめました。
2016年3月時点の最新環境である、下記の環境で試しています。
- Xcode 7.3
- Swift 2.2
- Fabric 2.3.1
- Crashlytics 3.7.0
Fabricとは
Twitter社が提供しているモバイルアプリケーションプラットフォームです。 モバイルアプリケーション開発の各種ツール(SDK)がモジュール形式で提供されています。
Fabric - Twitter's Mobile Development Platform
Crashlyticsとは
Fabricに含まれているツールの一つで、クラッシュログの収集や、実機へのテスト配信等を行うことができます。
Crashlytics for iOS - Fabric Summary
Fabricのアカウント取得とMacアプリのインストール
Fabricのサイトからウィザードにそってアカウント取得し、専用アプリをインストールします。 難しい手順ではないので、割愛します。 ( 以下の記事が参考になります)
Crashlyticsのプロジェクトへの導入
FabricのMacアプリを起動すると、ウィンドウが表示されるので、ログインします。
プロジェクトの一覧が表示されるので、導入したいプロジェクトを選択します。 CocoaPodsを利用している場合は、xcworkspaceを選択します。
※ サンプルプロジェクト名は、fabircとタイプスミスしています・・
Fabricのツール一覧が表示されるので、今回はCrashlytics を選択します。
導入する方法を聞かれます。
CocoaPodsで導入したいので、左の赤いアイコンを選択します。 プロジェクトの選択時に、xcworkspaceを選択していない場合は、左のアイコンは表示されません。
Podfileの記載内容が表示されるので、記載に従いインストールします。 通常のCocoaPodsでのライブラリインストールと同じです。 インストール後に、次へ進みます。
ビルドスクリプトが表示されるので、コピーします。
Xcodeで該当プロジェクトの「Build Phases」から「New Run Script Phase」を選択します。
Shellにコピーしたスクリプトを貼り付けて、⌘+Bでビルドします。 ビルドが成功すると次の画面に進みます。
Fabric埋め込むコードが表示されるので、AppDelegate.swiftへ埋め込みます。
⌘+Rでアプリをシミュレータで実行します。
実行が成功すると導入完了のため、Doneで終了します。
アプリのテスト配信
※ テスト対象デバイスのUDIDを登録、Provisioning Profile等の作成が完了していることが前提となります。
アプリの配信はMacアプリから行う方法と、コマンドラインから行う方法の2種類がありますが、今回は Fabric アプリからの配信について記載します。
Fabric アプリからの配信
まず、FabricのMacアプリを起動しておきます。
次に、Xcodeでアーカイブを作成します。
Deviceで「Gneric iOS Device」を選択し、「Product」>「Archive」でアーカイブを作成します。
アーカイブが成功するとFabricアプリが自動的に以下の画面となり、「Distribute」ボタンから配布できるようになります。
任意でRelase notesを記載します。
アップロードが開始されます。
アップロードが完了すると、テスト対象者へメールが送信され配信完了です。
各デバイスへのテスト対象アプリのインストール
テスト対象者には、「You’ve been invited to test [アプリ名] 」というタイトルでメールが届きます。
Safariで開いていない場合は、下記のようなエラー画面がでるので、URLをコピーしてSafariで開きます。
Safariで開くと端末名称の設定画面がでるので、任意名称を設定して次へ進みます。 Profileがインストールされていない場合は、Profileのインストールが求められので、ナビゲーションにそってインストールします。
Profileのインストールが終わると、アプリのインストール画面が表示されます。 ここでインストールボタンが表示されない場合は、端末のUDIDの登録ミスやプロビジョニングファイルにテスト端末のUDIDが含まれていなどが考えられます。
インストールボタンを押下し、ホーム画面を見ると、アプリがインストールされ完了です。
Fabricの管理画面を見ると、各テスト対象者のインストールステータスが確認できます。
テスト対象アプリのバージョンアップ(更新)
Crashlyticsでは、Xcodeの「Version」と「Build」でバージョンを識別します。 そのため、新しいバージョンのアプリをテスト配信するには、バージョンを上げる必要があります。
アーカイブ、配信の手順は新規インストール時と同じです。 なお、更新の場合 テスト対象端末側では、再度メールから開くようなことは不要で、アプリを立ち上げると更新情報が通知され新しいアプリをインストールできます。
まとめ
TestFlightと比較して、UDIDの登録などの手間はかかりますが、 テスターにApple IDを作って貰う必要が無いことや、配布からテスト可能までが早い(TesfFlightは処理に時間がかかる)などメリットも多いので、 頻繁にアプリを更新して検証する、初期フェーズでのテストには非常に有用です。
追記
Bitrise + Fabric に関する記事も記載しました。