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に依存性などの定義を修正する
- fabricを導入したアプリを端末へインストール・起動
- 起動後に fabric.io にアクセスするとダッシュボードへアクセス可能になる
っていう流れで導入する。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