【Unity】Apple silicon M1でFirebaseをimportするとエラーDllNotFoundExceptionが発生する【Firebase】【トラブルシューティング】

Unity

2022/5/27 追記
Firebaseの最新版が正式に対応したため、そちらを使用すればよい。
この記事は過去の記録として残しておく。

表題の通り以下エラーが発生する。

DllNotFoundException: FirebaseCppApp-X_X_X assembly: type: member:(null)

×PackageManager経由でのダウンロード
×unitypackageでのimport

解決方法

どうもApple Silicon対応のUnityはFirebaseのSDKに対応していないらしい。

以下リンクの通りに対処することで回避可能。
(Intel版ならエラーが発生しないらしいが、遅くて使う気になれないため)

[Bug] Apple Silicon – DllNotFoundException #1100

  1. 8.8.0のFirebaseの必要なSDKをダウンロードしてimport https://developers.google.com/unity/archive
  2. リンクからbundleをダウンロード https://samskivert.com/firebase-bundles.zip
  3. /Firebase/Plugins/x86_64/の下の.bundleファイル2のbundleに置き換え
  4. Inspectorでbundleファイルの設定を元のbundleファイルと同様に変更(ターゲットのOSとか)

PackageManagerを使用する場合は、以下手順

  1. 8.8.0のFirebaseの必要なSDKのtarをダウンロード https://developers.google.com/unity/archive
  2. リンクからbundleをダウンロード https://samskivert.com/firebase-bundles.zip
  3. プロジェクトディレクトリの直下にGooglePackagesディレクトリを作成して、tarを配置
  4. tarを解凍して、プロジェクト/GooglePackages/package/Firebase/Plugins/x86_64/の下の.bundleファイルを2のbundleに置き換え
  5. 解凍したディレクトリを再度圧縮(tar / tgz どちらか)
  6. Package/manifest.jsonに以下を追記
{ "dependencies": 
{
...
"com.google.external-dependency-manager": "file:../GooglePackages/com.google.external-dependency-manager-1.2.169.tar",
"com.google.firebase.app": "file:../GooglePackages/com.google.firebase.app-8.8.0.tgz",
...

ちなみに、firebaseの設定ファイルはAssets/StreamingAssetsフォルダに格納する必要があった。

一刻も早く正式対応してほしいですね。→9.0.0で対応したようです。

コメント

タイトルとURLをコピーしました