Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

Firebase Crashlytics を使ってみる

このクイックスタートでは、Firebase コンソールで包括的なクラッシュ レポートを表示できるよう、Firebase Crashlytics SDK を使用してアプリに Firebase Crashlytics を設定する方法について説明します。

Crashlytics を設定するには、Firebase コンソールと IDE の両方でタスク(Firebase 構成ファイルと Crashlytics SDK の追加など)を行う必要があります。設定を完了するには、強制的にテスト クラッシュを発生させて、最初のクラッシュ レポートを Firebase に送信する必要があります。

始める前に

  1. まだ追加していない場合は、Unity プロジェクトに Firebase を追加します。Unity プロジェクトがない場合は、サンプルアプリをダウンロードできます。

  2. 推奨: クラッシュに遭遇していないユーザー数の表示、パンくずリストのログ、ベロシティ アラートなどの機能を利用するには、Firebase プロジェクトで Google アナリティクスを有効にする必要があります。

    • 既存の Firebase プロジェクトで Google アナリティクスが有効になっていない場合は、Firebase コンソールで、 > [プロジェクトの設定][統合] タブで Google アナリティクスを有効にします。

    • 新しい Firebase プロジェクトを作成する場合は、プロジェクトの作成ワークフローで Google アナリティクスを有効にします。

ステップ 1: Firebase コンソールで Crashlytics を有効にする

  1. Firebase コンソールの Crashlytics ダッシュボードに移動します。

  2. ページの上部にある [Crashlytics] の横にあるプルダウンで目的のアプリが選択されていることを確認します。

  3. [Crashlytics を有効にする] をクリックします。

ステップ 2: アプリに Firebase Crashlytics SDK を追加する

  1. Firebase Unity SDK をダウンロードし、適切な場所で解凍します。

    Firebase Unity SDK はプラットフォーム固有ではありません。

  2. 開いている Unity プロジェクトで、[Assets] > [Import Package] > [Custom Package] を選択します。

  3. 解凍した SDK の中から Crashlytics SDK(FirebaseCrashlytics.unitypackage)を選択してインポートします。

    その他のサポートされている Firebase プロダクトもインポートできます。

  4. [Import Unity Package] ウィンドウで [Import] をクリックします。

ステップ 3: Crashlytics を初期化する

  1. 新しい C# スクリプトを作成して、シーン内の GameObject に追加します。

    1. 最初のシーンを開き、空の GameObject を作成します(CrashlyticsInitializer という名前を付けます)。

    2. 新しいオブジェクトに対して、[Inspector] で [Add Component] をクリックします。

    3. CrashlyticsInit スクリプトを選択して、CrashlyticsInitializer オブジェクトに追加します。

  2. スクリプトの Start メソッドで Crashlytics を初期化します。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    // Import Firebase
    using Firebase;
    
    public class CrashlyticsInit : MonoBehaviour {
        // Use this for initialization
        void Start () {
            // Initialize Firebase
            Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
                var dependencyStatus = task.Result;
                if (dependencyStatus == Firebase.DependencyStatus.Available)
                {
                    // Create and hold a reference to your FirebaseApp,
                    // where app is a Firebase.FirebaseApp property of your application class.
                    // Crashlytics will use the DefaultInstance, as well;
                    // this ensures that Crashlytics is initialized.
                    Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                    // Set a flag here for indicating that your project is ready to use Firebase.
                }
                else
                {
                    UnityEngine.Debug.LogError(System.String.Format(
                      "Could not resolve all Firebase dependencies: {0}",dependencyStatus));
                    // Firebase Unity SDK is not safe to use here.
                }
            });
        }
    
      // Update is called once per frame
      void Update()
        // ...
    }

ステップ 4: プロジェクトを実行する

  1. プロジェクトを iOS または Android にエクスポートします。

  2. エクスポートが完了したら、エクスポートしたプロジェクトと以下のエクスポート構成の例を比較して、プロジェクトが正しくエクスポートされていることを確認します。

    プロジェクトを比較した結果、欠落しているファイルがある場合は、Unity エディタを開いて、Google Play 開発者サービス リゾルバを実行します(以下の手順を参照してください)。

    iOS

    Android

エクスポート後にファイルが欠落している場合はリゾルバを実行(必要に応じて)

Google Play 開発者サービス リゾルバが、アプリを iOS または Android にエクスポートするために適切な依存関係が Unity プロジェクトに含まれるよう機能します。リゾルバの詳細については、Unity Jar Resolver の README をご覧ください。

ステップ 5: 強制的にテスト クラッシュを発生させて設定を完了する

Crashlytics の設定を完了し、Firebase コンソールの Crashlytics ダッシュボードで最初のデータを確認するには、強制的にテスト クラッシュを発生させる必要があります。

  1. [Hierarchy] ウィンドウで新しいオブジェクトを作成します。

    1. 右クリックして [Create Empty] を選択し、ゲームのシーンに新しい空の GameObject を追加します。

    2. 新しいオブジェクトに CrashlyticsTester という名前を付けます。

    3. 続行する前に、CrashlyticsTester オブジェクトが選択されていることを確認します。

  2. [Inspector] タブで、アプリを実行してから数秒後にテスト クラッシュを発生させる新しいスクリプトを追加します。

    1. [Add Component] をクリックします。

    2. コンポーネントのリストの下部にある [New Script] を選択します。

    3. 新しいスクリプト CrashlyticsTester にも名前を付けて、スクリプトに次の内容を追加します。

      using System;
      using UnityEngine;
      
      public class CrashlyticsTester : MonoBehaviour {
      
          int updatesBeforeException;
      
          // Use this for initialization
          void Start () {
            updatesBeforeException = 0;
          }
      
          // Update is called once per frame
          void Update()
          {
              // Call the exception-throwing method here so that it's run
              // every frame update
              throwExceptionEvery60Updates();
          }
      
          // A method that tests your Crashlytics implementation by throwing an
          // exception every 60 frame updates. You should see non-fatal errors in the
          // Firebase console a few minutes after running your app with this method.
          void throwExceptionEvery60Updates()
          {
              if (updatesBeforeException > 0)
              {
                  updatesBeforeException--;
              }
              else
              {
                  // Set the counter to 60 updates
                  updatesBeforeException = 60;
      
                  // Throw an exception to test your Crashlytics implementation
                  throw new System.Exception("test exception please ignore");
              }
          }
      }
      
  3. アプリをビルドして実行します。

    1. [File] > [Build Setting] に移動し、プラットフォームのリストから Android または iOS のいずれかを選択します。

    2. [Build and Run] をクリックして、iOS または Android 用のアプリをビルドして実行します。

  4. アプリが実行中になったら、デバイスログを監視し、CrashlyticsTester で例外がトリガーされるのを待ちます。

    • iOS: Xcode の下部ペインでログを確認します。

    • Android: ターミナルで adb logcat コマンドを実行してログを確認します。

  5. デバイスログに例外が表示されたらアプリを再起動します。これにより、Firebase にクラッシュ レポートが送信されます。

  6. Firebase コンソールの Crashlytics ダッシュボードに移動して、テスト クラッシュを確認します。

    コンソールを更新し、5 分経過してもテスト クラッシュが表示されない場合は、デバッグ ロギングを有効にして、アプリがクラッシュ レポートを送信しているかどうかを確認してください。


これで完了です。これで Crashlytics がアプリのクラッシュをモニタリングするようになったため、Crashlytics ダッシュボードでクラッシュ レポートと統計情報を確認、調査できます。

次のステップ