fabric.io(Crashlytics)でクラッシュレポート


Android

fabric.io を使ってCrashlyticsでクラッシュレポートを送信するメモ

fabric.ioの流れ

  1. Android Studioにfabricプラグインを導入
    1. AndroidManifest.xmlにapiKeyが直書きされるのでgithubとかにうpする場合は注意
    2. project/app/fabric.propertiesにapiKeyをAndroidManifest.xmlからコピペしてAndroidManifest.xml側は削除しておく(無論、githubとかにfabric.propertiesは載せないように)
    3. android.app.Applicationを継承したクラスでfabricによるCrashlyticsでクラッシュトラッキングする方向な設定コードを組み込む
    4. 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からダッシュボードへアクセスする出来るようになる

    んで適当にアプリをバグらせて確認すると

    image

    というようなクラッシュエラーを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

Table of Contents
fabric.ioの流れ project/build.gradleを修正 project/app/build.gradleを修正 App.java 余談 デバッグビルド時にはCrashlyticsを有効にしない場合
関連記事