[Fabric] Crashlytics 入門 #1 まずは導入してみよう
Crashlytics とは?
Crashlytics とは、モバイルアプリのクラッシュ統計サービスです。iOS アプリや Android アプリに導入することでクラッシュレポートを収集することができます。
今回より、Crashlytics の使いかたについて解説したいと思います。ということで、まずは導入してみましょう。
実行環境
今回試した実行環境は以下の通りです。
- Mac OS X 10.10.2
- Xcode 6.1.1 (6A2008a)
- Fabric 1.1.0
- Crashlytics Kit 2.2.9
Crashlytics の導入の前準備
Crashlytics を利用するためには、まず Fabric の開発者アカウント登録が必要です。以下の記事にまとめていますので、ご参照ください。
Fabric の Mac アプリのインストールまで終わったら、次のステップに進んでください。
Crashlytics を導入する
次に、Crashlytics Kit を Xcode プロジェクトに導入してみましょう。まず先ほどインストールした Fabric アプリを起動します。メニューバーにアイコンが現れるので、クリックするとログインが求められます。
ログインすると Xcode プロジェクトの一覧が表示されるので、連係させたい Xcode プロジェクトを選択します。
次に、どのモジュールを使うか問われます。今回は Crashlytics を利用したいので Crashlytics を選択します。
次に、Xcode プロジェクトの Run Script にスクリプトを追加する旨のメッセージが表示されます。
こんな感じです。ビルドを1回実行すると次に進めます。
次に、Crashlytics Kit のインポートを行います。アイコンが表示されているので、そのままドラッグしてインポートします。
こんな感じです。Framework グループを作成して、その中に入れておくと分かりやすいと思います。
以上で Fabric SDK と Crashlytics Kit のインポートは完了です。
Crashlytics を試す
それでは Crashlytics を試してみたいと思います。インポートが終わるとサンプルコードが表示されるので、これらをソースコードに追加します。まず必ず必要なのは、AppDelegate に Crashlytics を利用する設定です。
#import "AppDelegate.h" #import <Fabric/Fabric.h> #import <Crashlytics/Crashlytics.h> @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [Fabric with:@[CrashlyticsKit]]; return YES; } @end
最後に次の画面が表示されます。アプリが実行されるのを待っている状態です。
ということでアプリを実行してみましょう。アプリ実行後、インジケータが消えて「Done」ボタンが表示されれば連係成功です。
さて、導入が終わったところでクラッシュレポートが正常に送信できるか試してみましょう。そのテストのために、Crashlytics Kit ではクラッシュさせるメソッドが用意されています。適当なところに以下のコードを記述し、実行してみましょう(デバッグモードでは送信されないため、Mac との接続を切断してからクラッシュさせてください)。
#import "ViewController.h" #import <Crashlytics/Crashlytics.h> @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [[Crashlytics sharedInstance] crash]; } @end
次に、Crashlytics の管理画面をブラウザで開いてみます。次の URL にアクセスすると開けると思います。
クラッシュレポートが正常に送信されていることが確認できました。
まとめ
Crashlytics について、はじめの一歩を紹介しました。 とりあえずクラッシュレポートを取っておきたいだけであれば、今回解説した作業だけで十分なので、まずは導入してみてはいかがでしょうか。 Crashlytics にはこれだけではない、もう少し便利に使えそうな機能を持っていますので、今後も紹介していきたいと思います。