fabric.io(Crashlytics)でクラッシュレポート
fabric.io を使ってCrashlyticsでクラッシュレポートを送信するメモ
fabric.ioの流れ
- Android Studioにfabricプラグインを導入
- AndroidManifest.xmlにapiKeyが直書きされるのでgithubとかにうpする場合は注意
- project/app/fabric.propertiesにapiKeyをAndroidManifest.xmlからコピペしてAndroidManifest.xml側は削除しておく(無論、githubとかにfabric.propertiesは載せないように)
- android.app.Applicationを継承したクラスでfabricによるCrashlyticsでクラッシュトラッキングする方向な設定コードを組み込む
- project/build.gradle及びapp/build.gradleに依存性などの定義を修正する
<li>fabricを導入したアプリを端末へインストール・起動</li>
<li>起動後に fabric.io にアクセスするとダッシュボードへアクセス可能になる</li>
</ol>っていう流れで導入する。1に関しては fabric.io にアクセスした際にプラグインがダウンロード出来るのでそれをAndroid Studioでロードしておく。書いてある通りAndroidManifest.xmlにapiKeyが入ってるけどこれはfabric.propertiesで定義する。
project/build.gradleを修正
buildscript { repositories { jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:1.3.0' // 追加 classpath 'io.fabric.tools:gradle:1.+' } } allprojects { repositories { jcenter() maven { url 'http://oss.sonatype.org/content/repositories/snapshots' // 追加 url 'https://maven.fabric.io/public' } } }project/app/build.gradleを修正
※長いので一部だけ
apply plugin: "io.fabric" dependencies { // 追加 compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') { transitive = true; } }を追加
App.java
package kinjouj.app.oretter; import android.app.Application; import com.crashlytics.android.Crashlytics; import io.fabric.sdk.android.Fabric; public class App extends Application { @Override public void onCreate() { Fabric.with(this, new Crashlytics()); } }これで上記のセクション1は終わり。あとはこれをビルドしてインストール後起動するとfabric.ioからダッシュボードへアクセスする出来るようになる
んで適当にアプリをバグらせて確認すると

というようなクラッシュエラーをfabricダッシュボードのCrashlyticsから確認する事が出来るようになる
余談
proguardを有効にしている場合は
-keep class com.crashlytics.** { *; } -keep class com.crashlytics.android.**の記述が必要。詳しくは https://docs.fabric.io/android/crashlytics/dex-and-proguard.html
デバッグビルド時にはCrashlyticsを有効にしない場合
詳しくは https://docs.fabric.io/android/crashlytics/build-tools.html#disabling-crashlytics-for-debug-builds