Firebase Crashlytics を使ってみる

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

準備

Crashlytics を設定する前に、Firebase を使用するように Unity プロジェクトを登録して構成する必要があります。

  • Unity プロジェクトですでに Firebase を使用している場合、この登録と構成はすでに行われています。

  • Unity プロジェクトがない場合は、サンプルアプリをダウンロードできます。

    Firebase を Unity プロジェクトに追加するには、Firebase コンソールと開いている Unity プロジェクトの両方でタスクを行う必要があります(コンソールから Firebase 構成ファイルをダウンロードし、それを Unity プロジェクトに移動するなど)。

ステップ 1: Firebase コンソールで Crashlytics を設定する

  1. Firebase コンソールの左側のナビゲーション パネルにある [Crashlytics] をクリックします。

  2. Firebase プロジェクトに複数のアプリが登録されている場合は、コンソールの上部バーにある [Crashlytics] の横にあるプルダウンから追加したアプリを選択します。

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

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

  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()
        // ...
    }

SDK を追加して初期化したので、Crashlytics は自動的にクラッシュ レポートをリッスンして収集します。

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

プロジェクトを iOS または Android にエクスポートした後、プロジェクトが正しくエクスポートされていることを確認します。

プロジェクトを以下のサンプル エクスポート構成と比較します。その結果、欠落しているファイルがあるようであれば、Unity エディタを開いて、Google Play 開発者サービス リゾルバを実行します。

iOS

Android

リゾルバを実行する(省略可)

Google Play 開発者サービス リゾルバにより、アプリを iOS または Android にエクスポートするのに適切な依存関係が Unity プロジェクトに含まれていることを確認できます。

リゾルバの詳細については、Unity Jar Resolver の README をご覧ください。

iOS

iOS リゾルバは自動的に実行され、Cocoapods を使用して iOS の依存関係をエクスポート済みの Pods ディレクトリに格納します。

  • CocoaPods をマシンにダウンロードするには:

    • [Assets] > [Play Services Resolver] > [iOS Resolver] > [Install Cocoapods] に移動します。
  • ポッドファイルの生成を有効または無効にするには(オプション):

    • [Assets] > [Play Services Resolver] > [iOS Resolver] > [Settings] に移動します。

Android

Android リゾルバは自動的に実行され、gradle を使用して Android の依存関係を Assets/Plugins/Android に格納します。

  • リゾルバを手動で実行するには:

    • [Assets] > [Play Services Resolver] > [Android Resolver] > [Resolve] に移動します。
  • 自動解決を有効または無効にするには(デフォルトでは有効):

    • [Assets] > [Play Services Resolver] > [Android Resolver] > [Settings] に移動します。

次のステップ