Catch up on everthing we announced at this year's Firebase Summit. Learn more

UnityとFirebaseのトラブルシューティングとFAQ

このページでは、Firebaseの使用時に発生する可能性のあるUnity固有の問題に関するヒントとトラブルシューティングを提供します。

他の課題がありますか、または以下に概説されている問題が表示されませんか?チェックアウトすることを確認してくださいメインFirebaseよくある質問をもっと汎Firebaseまたは製品固有のよくある質問のために。

Unity2017.x以降を使用する場合の.NETの互換性

Firebaseは、Unity2017以降の実験的なビルドオプションとして.NET4.xをサポートしています。 Firebaseプラグインはコンポーネントの使用解析SDKを.NETの以前のバージョンではいくつかの.NET 4.xのクラスを提供します。

したがって、FirebaseユニティSDKバージョン5.4.0以降のいずれか.NET 3.xまたは.NET 4.xのと互換性のあるプラグイン提供dotnet3dotnet4 FirebaseユニティSDKのディレクトリを。

プロジェクトで有効になっている.NETバージョンと互換性のないFirebaseプラグインをインポートすると、ParseSDKによって実装されている.NETFrameworkの一部のタイプからのコンパイルエラーが表示されます。

.NET 3.xを使用している場合、コンパイルエラーを解決するには:

  1. すべてのプラットフォームで次のDLLを削除または無効にします。
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. すべてのプラットフォームで次のDLLを有効にします。
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

.NET 4.xを使用している場合、コンパイルエラーを解決するには:

  1. すべてのプラットフォームで次のDLLを削除または無効にします。
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. すべてのプラットフォームで次のDLLを有効にします。
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

別のFirebaseプラグインをインポートする場合:

  • あなたのユニティプロジェクトでは、資産へのナビゲート>プロジェクトのための正しいDLLを有効にするサービスリゾルバ>バージョンハンドラ>アップデートを再生ます。

Unity 2017.1 .NET4.xプロジェクトでのIL2CPPコンパイル

Firebaseは、Unity2017以降の実験的なビルドオプションとして.NET4.xをサポートしています。 Firebaseプラグインはコンポーネントの使用解析SDKを.NETの以前のバージョンではいくつかの.NET 4.xのクラスを提供します。

したがって、FirebaseユニティSDKバージョン5.4.0以降では、(例えば、解析の実装フォワード解析タイプタイプフォワーディングDLLの提供System.Threading.Tasks.Task .NETフレームワークに)。残念ながら、Unity 2017.1.xに同梱されているIL2CPP(C#をC ++に変換するトランスパイラー)は、タイプ転送DLLを正しく処理しないため、次のようなビルドエラーが発生します。

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

現在、Unity2017.1で.NET4.x IL2CPPビルドエラーに利用できる回避策はありません。そのため、IL2CPPでコンパイルされたプロジェクトで.NET 4.xを使用するには、Unity2017.2以降にアップグレードする必要があります。

Unity2017.2ネットワーキング

Firebase Realtime Databaseは、.NETネットワークスタックを使用してTLSネットワーク接続を作成します。 Unity2017.2で.NET4.6を使用するとTLS機能が壊れ、エディターとデスクトップでRealtimeDatabaseプラグインが失敗します。

この問題の回避策はないため、バージョン2017.1や2017.3などの別のバージョンのUnityを使用する必要があります。

Unity2020にFirebaseAndroid設定ファイルがありません

Gradleのビルドをカスタマイズする機能を持っていないユニティのサポートバージョンにするために、Firebaseエディタツールが生成Assets/Plugins/Android/Firebase/res/values/google-services.xml Androidのリソースとしては、中に包装されますAndroidビルド。これにより、FirebaseSDKはそれを使用してデフォルトのFirebaseAppインスタンスを初期化できます。

ユニティ2020では、すべてのAndroidのリソースを持つディレクトリにある必要があります.androidlibサフィックス。あなたのプロジェクトが生成Firebase SDK使用している場合はAssets/Plugins/Android/Firebaseディレクトリを、に名前を変更Assets/Plugins/Android/Firebase.androidlib 。ことを確認してくださいそれが含まれているAndroidManifest.xmlproject.propertiesおよびres/values/google-services.xml

Androidアプリの構築中のシングルデックスの問題

Androidアプリのビルド中に、単一のdexファイルを持つことに関連するビルドエラーが発生する場合があります。プロジェクトがGradleビルドシステムを使用するように構成されている場合、エラーメッセージは次のようになります。

Cannot fit requested classes in a single dex file.

Dalvik実行可能( .dex )ファイルは、クラス定義とAndroidのアプリケーション(のためにそれに関連する付属データのセットを保持するために使用され.apk )。単一のdexファイルは、65,536個のメソッドへの参照に制限されています。プロジェクト内のすべてのAndroidライブラリのメソッドの総数がこの制限を超えると、ビルドは失敗します。

Unityが導入縮小化を単一DEXファイルで参照される方法の合計数を減らすことができ、未使用のコードを取り除くために(ユニティのいくつかのバージョンで、または他のツール)ProGuardのを使用する、2017.2で。オプションはPlayer設定]> [アンドロイド]> [公開設定]> [縮小化で見つけることができます。 Unityのバージョンによってオプションが異なる場合があるため、Unityの公式ドキュメントを参照してください。

参照されるメソッドの数が依然として限界を超えた場合、別のオプションが有効であるmultidex 。 Unityでこれを実現する方法は複数あります。

  • 場合はCustom Gradle TemplatePlayer Settings有効になっている、変更mainTemplate.gradle
  • エクスポートしたプロジェクトをビルドするには、Android Studioを使用する場合は、モジュールレベルの修正build.gradleファイルを。

詳細はで見つけることができmultidexユーザーガイド

Unity2017およびUnity2018(Firebase Unity SDK 8.0.0以降)でのAndroidビルドのJava8サポートと脱糖

そのすべてのAndroidライブラリのための2021年5月には(Firebase BOM v28.0.0)、Firebase無効脱糖(参照リリースノートを)。 Firebase Unity SDK(8.0.0以降)を使用してAndroidアプリをビルドすると、次のビルドエラーが表示される場合があります。

> Error while dexing.
 The dependency contains Java 8 bytecode. Please enable desugaring by adding the following to build.gradle

この変更は、Unity2017およびUnity2018のAndroidビルドにのみ影響します。ユニティの新しいバージョンが追加compileOptions Gradleのビルドファイルにデフォルトでブロックを。 Unity2017およびUnity2018でこのビルドエラーを修正するには、次のいずれかを実行します。

  • 追加compileOptionsあなたのGradleテンプレートにブロックを:

    1. 使用Gradleビルドシステムとして。
    2. 有効Custom Gradle TemplatePlayer Settings
    3. 次の行を追加しmainTemplate.gradle (またはモジュールレベルのbuild.gradleのAndroid Studioのプロジェクトをエクスポートする場合):

      android {
          compileOptions {
              sourceCompatibility 1.8
              targetCompatibility 1.8
          }
      }
      
  • または、AndroidプロジェクトのminSdkVersionを26以上に増やします。

参照して脱糖ビルドの失敗- Androidのトラブルシューティング

Cocoapodsを使用してiOS用にビルドする際の問題

iOS向けにビルドする場合、Cocoapodのインストールが失敗し、言語ロケールまたはUTF-8エンコーディングに関するエラーが発生する場合があります。現在、この問題を回避する方法はいくつかあります。

  • 端末から、実行がpod install直接、そして得られたxcworkspaceファイルを開きます。

  • Cocoapodsのバージョンを1.10.2にダウングレードします。この問題は、バージョン1.11以降でのみ発生します。

  • あなたには~/.bash_profileまたは同等の、追加export LANG=en_US.UTF-8