Unity アプリを Fabric Crashlytics から Firebase Crashlytics に移行する

このクイックスタートでは、Firebase コンソールですべてのクラッシュ レポートを表示できるよう、既存の Fabric Crashlytics Unity アプリを Firebase Crashlytics に移行する方法について説明します。

はじめに

次のガイドでは、Fabric で Unity アプリが機能していることが前提となります。Fabric 内に既存の Unity アプリがない場合は、Crashlytics の新規ユーザーを対象とする、使ってみるの手順に従ってください。

  1. Fabric にログインして、移行フローに移動します。

  2. [Signed into Google as] フィールドに、ご使用の Firebase プロジェクトに関連付けられている Google アカウントが入力されていることを確認します。該当するアカウントでない場合は、[Switch accounts] をクリックして正しいアカウントを選択します。

  3. [Get Started] をクリックしてから、[Start Linking] をクリックします。

  4. 左側の該当する Fabric アプリを右側の該当する Firebase プロジェクトにドラッグします。

    新しい Firebase プロジェクトを作成することもできます。

  5. [Link 1 app to Firebase] をクリックします。

ステップ 2: Fabric を削除する

Fabric はシーンに GameObject を追加して、ゲーム内の Crashlytics や SDK 自体の追加ディレクトリを初期化します。

Fabric Crashlytics プラグインと Firebase Crashlytics プラグインの競合を回避するには、Unity プロジェクトから次の Fabric フォルダとファイルを削除します。

  • [Assets] に含まれている次のファイルを削除します。

    Assets/
       Editor Default Resources/
           FabricSettings.asset     <- DELETE
       Fabric/                      <- DELETE
       Plugins/
           Android/
               answers/             <- DELETE
               beta/                <- DELETE
               crashlytics/         <- DELETE
               crashlytics-wrapper/ <- DELETE
               fabric/              <- DELETE
               fabric-init/         <- DELETE
           iOS/
               Fabric/              <- DELETE
    
  • [Hierarchy Window] で、次の GameObject を削除します。

    SampleScene
        Main Camera
        Directional Light
        Canvas
        EventSystem
        FabricInit                  <- DELETE
        CrashlyticsInit             <- DELETE
    
  • [Assets] > [Plugins] > [Android] > [AndroidManifest.xml] で Fabric に関するすべてのエントリを削除します。

    たとえば、既存のキーを削除する場合: android:name="io.fabric.unity.android.FabricApplication"

    他の Fabric エントリが存在する場合は検索して削除します。

ステップ 3: Firebase 構成ファイルを追加する

  1. Firebase コンソールに移動します。

  2. 左上の [Project Overview] の横にある settings をクリックして、[プロジェクトの設定] を選択します。

  3. アプリを新しくリンクした場合は、リンクしたアプリごとに Firebase のプラットフォーム固有の構成ファイルをダウンロードします。構成ファイルは 1 つの Unity プロジェクトにつき最大 2 つまで設定できます。

    • iOS の場合 - GoogleService-Info.plist
    • Android の場合 - google-services.json
  4. Unity プロジェクトで [プロジェクト] ウィンドウを開き、構成ファイルを Assets フォルダに移動します。

ステップ 4: 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] をクリックします。

ステップ 5: Firebase 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 intitialized.
                      Firebase.FirebaseApp app = Firebase.FirebaseApp.DefaultInstance;
    
                      // WARNING: Do not call Crashlytics APIs from asynchronous tasks;
                      // they are not currently supported.
    
                      // 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 は自動的にクラッシュ レポートをリッスンして収集します。

ステップ 6: Fabric API 呼び出しを置き換える

API に対するいくつかの変更点を考慮に入れる必要があります。詳しくは、Unity API の変更に関するページをご覧ください。

ステップ 7: Fabric API キーを追加する

アプリはすでに Fabric とリンクした状態になっているため、Firebase にアプリの Fabric API キーを提供する必要があります。キーを提供すると、クラッシュ レポートが Firebase Crashlytics にシームレスに移動し、Firebase Crashlytics ダッシュボードにすべての履歴データを表示できるようになります。

  1. Unity プロジェクトで [Window] > [Firebase] > [Crashlytics] を選択して、Firebase Crashlytics を開きます。

  2. [Fabric API Key] に Fabric API キーを入力します。

  3. [保存] をクリックします。

ステップ 8: プロジェクトを構築する

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

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

iOS

Android

リゾルバを実行する(オプション)

Google Play 開発者サービス リゾルバの実行

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] に移動します。

次のステップ

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。