使用 Firebase Google Analytics SDK 构建 Unity 项目失败:“无法加载文件或程序集 'UnityEditor.iOS.Extensions.Xcode”

Bun*_*ner 3 android google-analytics unity-game-engine firebase google-analytics-firebase

问题

我正在尝试将 Firebase Google Analytics 集成到我现有的 Unity 项目(适用于 iOS 和 Android 的手机游戏)中。我按照https://firebase.google.com/docs/unity/setup上的说明进行操作(满足所有先决条件)。不幸的是,当尝试在 Windows 上构建 Android 版本时,我收到以下错误:

BadImageFormatException: Could not resolve field token 0x040000dc, due to: Could not load type of field 'Firebase.Editor.XcodeProjectModifier:projectInfoDoc' (2) due to: Could not load file or assembly 'UnityEditor.iOS.Extensions.Xcode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. assembly:UnityEditor.iOS.Extensions.Xcode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null type:<unknown type> member:(null) signature:<none> assembly:C:\Users\mform\Code\guessme\Assets\Firebase\Editor\Firebase.Editor.dll type:XcodeProjectModifier member:(null) signature:<none>
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <567df3e0919241ba98db88bec4c6696f>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <567df3e0919241ba98db88bec4c6696f>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <567df3e0919241ba98db88bec4c6696f>:0)
UnityEditor.Build.BuildPipelineInterfaces+AttributeCallbackWrapper.OnPostprocessBuild (UnityEditor.Build.Reporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:158)
UnityEditor.Build.BuildPipelineInterfaces+<OnBuildPostProcess>c__AnonStorey2.<>m__1 (UnityEditor.Build.IPostprocessBuildWithReport bpp) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:398)
UnityEditor.Build.BuildPipelineInterfaces.InvokeCallbackInterfacesPair[T1,T2] (System.Collections.Generic.List`1[T] oneInterfaces, System.Action`1[T] invocationOne, System.Collections.Generic.List`1[T] twoInterfaces, System.Action`1[T] invocationTwo, System.Boolean exitOnFailure) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/BuildPipelineInterfaces.cs:356)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

Error building Player: BadImageFormatException: Could not resolve field token 0x040000dc, due to: Could not load type of field 'Firebase.Editor.XcodeProjectModifier:projectInfoDoc' (2) due to: Could not load file or assembly 'UnityEditor.iOS.Extensions.Xcode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. assembly:UnityEditor.iOS.Extensions.Xcode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null type:<unknown type> member:(null) signature:<none> assembly:C:\Users\mform\Code\guessme\Assets\Firebase\Editor\Firebase.Editor.dll type:XcodeProjectModifier member:(null) signature:<none>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它会尝试加载这个程序集,无论如何,这显然只适用于 iOS。我不知道如何预防或消除这个错误。

设置

构建设置

在此输入图像描述

播放器设置

在此输入图像描述

解决方案尝试

  • 我通过 Git 重置了所有更改,并从头开始重新执行这些步骤,重新导入 SDK unity 包
  • 使用 Play 服务解析器
    • 我更新了版本处理程序
    • 我强制解决 Android 依赖项(有效)
  • 删除Library文件夹并重建

不幸的是,这些都没有帮助。我将非常感谢任何指向正确方向的指示。

Bun*_*ner 5

感谢@C\xc5\x93ur的提示(感谢 1000 次),我在 Unity 编辑器中安装了 iOS 模块(尽管我只是尝试在 Windows 上构建 Android 版本)。安装了 iOS 模块后,Android 构建就可以工作了。

\n