Crashlyticsコンポーネント
Crashlytics(Fabric提供)は、アプリのクラッシュに関する分析を提供します。Crashlyticsによる説明を以下に紹介します。
Crashlyticsは、iOSとAndroid向けの業界随一のクラッシュレポートプラットフォームです。Crashlyticsを使用すれば、アプリ内のクラッシュに関するリアルタイム情報と、最も影響の大きい安定性の問題に正面から対処するために必要な詳細を得ることができます。Crashlyticsをインクルードするだけで、すぐにクラッシュレポートが有効になります。コードを追加する必要はありません。 - Crashlytics
詳細については、Android向けのCrashlyticsのドキュメントを参照してください。Crashlyticsコンポーネントには、IAnalytics
インターフェイスが実装されています。このコンポーネントを使用するには、Crashlyticsアカウントが必要です。
Crashlyticsを構成するには、次の手順を実行します。
- 手順1:Crashlyticsキーを取得する
- 手順2:Crashlyticsコンポーネントを構成する
- 手順3:テストクラッシュを作成する
- 手順4:Crashlyticsダッシュボードを確認する
- タグ名のカスタマイズ
手順1:Crashlyticsキーを取得する
Crashlyticsアカウントをまだ取得していない場合は、サインアップしてアプリの詳細を送信します。
- https://fabric.io/sign_upにアクセスし、アカウントにサインアップします。
- 確認画面とようこそ画面を進みます。
-
「You'll be up and running in 3 steps!」という画面は無視します。
-
Install Crashlytics via Gradleページにアクセスし、Add Your API Keyセクションを確認します。
ログインしている場合は、次のようにコードサンプルにAPIキーが自動的に入力されます。
- このAPIキーを、後の手順で使用できるように参照しやすい場所にコピーします。
(既にCrashlyticsアカウントを持っていて、これまでにCrashlyticsの統計データを表示したことがある場合は、組織の設定からAPIキーを確認することもできます。Fabric API Keysを参照してください。)
手順2:Crashlyticsコンポーネントを構成する
-
Crashlyticsコンポーネントをアプリに読み込みます。アプリにコンポーネントを読み込む方法の詳細については、アプリ内のコンポーネントを追加または削除するを参照してください。
アプリにほかの分析コンポーネント(FlurryAnalyticsComponent、OmnitureAnalyticsComponent、GoogleAnalyticsComponent、LoggerAnalyticsComponentなど)が読み込まれている場合は、すべて削除してください。
注: 読み込むことができるコンポーネントは、インターフェイスごとに1つだけです。たとえば、Flurry AnalyticsコンポーネントとOmniture Analyticsコンポーネントは、どちらも同じIAnalytics
インターフェイスを使用するため、両方を同時に読み込むことはできません。インターフェイスごとのコンポーネント一覧は、コンポーネントの概要を参照してください。警告: [Sync Gradle] をクリックすると、最初にエラーメッセージが表示され、Gradleによって必要なリソースの取得が試みられます。Crashlyticsでは、そのAndroidManifest.xmlファイルに有効なAPIキーが入力されている必要がありますが、Gradleを同期するまではCrashlyticsComponentディレクトリがAndroidプロジェクトに認識されないため、エラーが発生します。ここではGradleのビルドエラーは無視してください。 -
[Android] ビューで、Gradle Scriptsを展開し、build.gradle (Module: app)を開きます。「
// Uncomment when using CrashlyticsComponent
」というコメントで示されているコードのコメントを解除します。コメントを正しく解除したコードは次のようになります。// Uncomment when using CrashlyticsComponent apply plugin: 'io.fabric' apply from: "../artifacts.gradle" repositories { // Uncomment when using CrashlyticsComponent maven { url 'https://maven.fabric.io/public' } } buildscript { repositories { jcenter() // Uncomment when using CrashlyticsComponent maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'me.tatarka:gradle-retrolambda:3.2.3' // Uncomment when using CrashlyticsComponent classpath 'io.fabric.tools:gradle:1.+' } }
-
CrashlyticsComponent > manifestsに移動し、AndroidManifest.xmlファイルを開きます。次のように、
value
プロパティにCrashlyticsキーを入力します。android:name="io.fabric.ApiKey" android:value="your_fabric_api_account_key"/>
-
CrashlyticsComponent > res > valuesに移動し、values.xmlを開きます。次のように、
your_api_key
文字列にCrashlyticsキーを入力します。<string name="your_api_key">your_api_key</string>
- [Sync Gradle] ボタンをクリックします。
- アプリをビルドして実行します。
アプリをビルドして実行すると、コードが正しく構成されていることがCrashlyticsで検出されます。この時点から、Crashlyticsのオンボード画面でブロックされずにCrashlyticsのダッシュボードに進めるようになります。
手順3:テストクラッシュを作成する
Crashlyticsの構成をテストするには、次のようにテストクラッシュを実行します。
- [Android] ビューで、TVUIComponent > java > com.amazon.android > tv.tenfoot > ui > fragmentsに移動し、ContentDetailsFragment.javaファイルを開きます。
-
onStart()
メソッドの先頭付近に次のコードを追加します。if(true) { throw new RuntimeException("Crashlyticsテスト用の疑似的なクラッシュ"); }
- [Run 'app'] ボタンをクリックしてアプリを起動します。
アプリが起動すると、すぐにクラッシュします。logcatコンソールに「crashlytics」というキーワードでフィルターを適用すると、次のログが表示されます。
07-01 13:04:02.021 28688-28688/com.amazon.android.calypso D/CrashlyticsAnalyticsModuleInitReceiver: IAnalyticsModule initialized.
07-01 13:04:02.064 28688-28688/com.amazon.android.calypso I/CrashlyticsCore: Initializing Crashlytics 2.3.8.97
07-01 13:04:04.296 28688-28787/com.amazon.android.calypso I/CrashlyticsCore: Crashlytics report upload complete: 5776CC9E029B-0001-6E05-6C83E6F7D1F2.cls
手順4:Crashlyticsダッシュボードを確認する
コードを設定し、アプリを実行してクラッシュを発生させると、Crashlyticsはオンボードページを通さずにダッシュボードを表示します。ここでクラッシュの詳細を確認できます。
- Crashlyticsにログインします。
- 右上隅にある [Dashboard] をクリックします。
- ダッシュボードで情報と設定を確認します。
タグ名のカスタマイズ
分析タグの名前はカスタマイズできます(タグはアクションや属性の名前です)。名前をカスタマイズすると、関心のあるアクティビティを識別しやすくなります。
すべての分析タグの一覧は、AnalyticsInterface > java > com.amazon.analytics > AnalyticsTags.java
で確認できます。
以下はタグの一例です。
public static final String ACTION_START_APP = "ACTION_START_APP";
ACTION_START_APP
(左側)がタグで、ACTION_START_APP
(右側)は、分析でのそのタグの表示方法です。この例では、どちらも同じになっています。この部分を、よりわかりやすい意味のある名前に変更できます。
タグを独自の名前にカスタマイズするには
- アプリのassets > configurationsディレクトリに移動します。
- このディレクトリに、CrashlyticsCustomAnalyticsTags.jsonという名前のJSONファイルを追加します。
-
カスタマイズするタグを次の形式で追加します。
{ "タグ": "値", "タグ": "値" }
たとえば、
ACTION_START_APP
タグとACTION_SEARCH
タグをカスタマイズするには、これらを次のように追加します。{ "ACTION_START_APP":"アプリの起動", "ACTION_SEARCH": "検索" }
左側の値は、AnalyticsTags.javaの分析タグにマッピングされます。右側の値は、タグの新しい値にマッピングされます。
カスタマイズできないタグを追加すると、タグをカスタマイズできないことを示す警告がログに表示されます。このカスタマイズは無視されます。