アプリをリリースした後にクラッシュが発生したときに原因が特定できるようにクラッシュログを収集すためのツールTwitter Fabricのツールの一つ、Crashlyticsを紹介します。

Twitter Fabricとは

Twitter Fabric(以下、Fabricと略します)はTwitter社がアプリデベロッパー向けに提供しているツール群の名前で様々なツールを提供しています。

ツール名 説明
Crashlytics クラッシュログ収集
Answers リアルタイムアクセス分析
Twitter Twitterログイン
Digits SMS認証ツール
MoPub 広告プラットフォーム
Stripe A/Bテスト
Optimizely 決済

今回はその中のクラッシュログ収集ツールであるCrashlyticsの導入方法を紹介します。

Fabricのインストール

Fabricのインストール方法を紹介します。まず下記URLにアクセスします。

http://qiita.com/yo1106/items/08d99d4e2ed83903485e

Fabricにアカウントを登録します。下図のとおりユーザ名、メールアドレス、パスワードを入力、同意のチェックをいれてResend Confirmationをクリックします。

下記の画面のとおり確認メールが登録したアドレス宛に通知されます。

そのメールを開いて本文中のConfirmボタンをクリックします。

ユーザ名を任意に入力したNextボタンをクリックします。

下記の画面でFabricを使いたいモバイルプラットフォームを選びます。
今回はiOSアプリのクラッシュログを収集したいのでAppleを選択します。

FabricSDKをダウンロードします。Downloadボタンをクリックします。

下記の画面が表示されればダウンロードが開始されます。

ダウンロードが完了したらダウンロードフォルダにFabricSDKのzipファイルがダウンロードされていますので、解凍してアプリケーションフォルダに移動します。

アプリケーションフォルダに移動したらそのFabricのアプリケーションを起動しましょう。
下記の画面が表示されます。

登録したメールアドレスとパスワードを入力して下のボタンをクリックします。

ログインすると、Macの中にあるXcodeプロジェクトが表示されます。Fabricを導入したいプロジェクトを選択します。

プロジェクト選択の後に、インストールしたいFabricツールを選択します。今回はクラッシュログ情報を収集したいのでCrashlyticsInstallボタンをクリックします。

下図の画面がでますのでI agree...の箇所のチェックボックスをチェックしてAgreeボタンをクリックします。

次の画面はインストールする方法を選択する画面です。右がCocoaPods経由でインストール、左がXcodeプロジェクト直接インストール、になります。今回はCocoaPads経由でインストールすることにします。

下図のようにCocoaPodsのPodfileに入力してもらいたい説明が記載されています。説明どおりに追加します。

Podfile

# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
# Uncomment this line if you're using Swift
use_frameworks!
project './プロジェクト名.xcodeproj'
target 'EnglishTraining' do
:
:
//////////////// ▼▼ 追加 ▼▼ ////////////////
pod 'Fabric'
pod 'Crashlytics'
//////////////// ▲▲ 追加 ▲▲ ////////////////
end

Podfileに追加したら下記コマンドで実際にFabricをダウンロードします。

ターミナルで実行

pod init

下図のようにCrashlyticsとFabricをインストールされます。

インストールしたらFabricの画面に戻りNextボタンをクリックします。

次はXcodeプロジェクトに追加してもらいたい設定内容の説明が出てきます。Run Scriptを追加します。
まず下図の矢印の箇所をコピーしておきます。

対象のXcodeプロジェクトをXcodeで開いて、下図のとおりプロジェクトエディタのBuild Phasesを開きNew Run Script Phasesをクリックします。

Rus Scriptの箇所のShellの下の入力欄に先程コピーしたものをペーストします。

ペーストしたらXcodeプロジェクトをビルドします。Product -> Buildでビルドしてください。
(command + bのショートカットでもビルドします。)

ビルドが完了するとFabricの画面が切り替わり、AppDelegateクラスファイルに追加してもらいたい内容が表示されますので追加します。

AppDelegate.swift

import UIKit
//////////////// ▼▼ 追加 ▼▼ ////////////////
import Fabric
import Crashlytics
//////////////// ▲▲ 追加 ▲▲ ////////////////
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, PurchaseManagerDelegate {
:
:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
//////////////// ▼▼ 追加 ▼▼ ////////////////
Fabric.with([Crashlytics.self])
//////////////// ▲▲ 追加 ▲▲ ////////////////
:
:
}
:
:
}

AppDelegateに追加したらFabricの画面に戻ってNextをクリックしましょう。

次の画面でcommand + rでXcodeプロジェクトをRunする案内が書かれていますので、XcodeプロジェクトをRunしましょう。

今までの設定内容が問題なければ下記の画面のとおりInstallation Completeの画面が表示されます。

さらにFabricに登録したメールアドレス宛にアプリが追加されたという通知が届きます。
View Detailsのボタンをクリックします。

そうすると下図のとおりFabricの管理画面が表示されアプリのダッシュボードが表示されます。

これでアプリにFabricのCrashlyticsがインストールされました。
Crashlyticsのレポートの見方については別記事で紹介したいと思います。