Unity 中的 Firebase / Google VR 链接器错误 - iOS

Posted

技术标签:

【中文标题】Unity 中的 Firebase / Google VR 链接器错误 - iOS【英文标题】:Firebase / Google VR linker error in Unity - iOS 【发布时间】:2020-06-21 18:19:30 【问题描述】:

我正在使用 unity (v2019.1.0f2) 和 firebase (v6.0) 和 Google VR (v1.200) 构建 ios 应用。当我使用一个空项目并添加 firebase 时,它​​会成功构建。如果我单击虚拟现实支持,它会在我构建时导入内容。我在 Xcode 中遇到以下问题

Undefined symbol: _OBJC_CLASS_$_FIRPhoneAuthCredential
Undefined symbol: _OBJC_CLASS_$_FIRGameCenterAuthProvider
Undefined symbol: _OBJC_CLASS_$_GKLocalPlayer
Undefined symbol: _OBJC_CLASS_$_FIRPhoneAuthProvider
Undefined symbol: _OBJC_CLASS_$_FIROAuthProvider
Undefined symbol: _OBJC_CLASS_$_FIRFacebookAuthProvider
Undefined symbol: _OBJC_CLASS_$_FIREmailAuthProvider
Undefined symbol: _OBJC_CLASS_$_FIRGoogleAuthProvider
Undefined symbol: _OBJC_CLASS_$_FIRGitHubAuthProvider
Undefined symbol: _OBJC_CLASS_$_FIRTwitterAuthProvider
Undefined symbol: _OBJC_CLASS_$_FIRAuth

知道为什么吗?

【问题讨论】:

【参考方案1】:

您似乎缺少与 FirebaseAuthentication 相关的 CocoaPods。有几点需要检查:

    确保打开生成的工作区(默认设置)而不是生成的项目:

    接下来,您需要确保 Podfile 存在于构建输出目录中,并且它具有必要的 pod。对于我的带有“Firebase 身份验证”和“Firebase 实时数据库”的示例项目,我的 Podfile 看起来像:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'

target 'UnityFramework' do
  pod 'Firebase/Auth', '6.24.0'
  pod 'Firebase/Core', '6.24.0'
  pod 'Firebase/Database', '6.24.0'
end

here 可以查看您需要哪些 pod 文件,但 External Dependency Manager for Unity (EDM4U) 应该已经为您处理了这个问题。所以首先我会确保它已安装和配置。

然后我会检查是否有Podfile。如果有,另一个扩展可能已经用自己的覆盖了 Firebase 依赖项。理想情况下,他们会使用 EDM4U(我写了一篇关于 here 的文章),但您可以修改他们的流程以引入 CocoaPod 依赖项或重新添加 Firebase 作为构建过程的一部分。

如果根本没有 Podfile,您需要确保有一个“Unity 的外部依赖管理器”包:

Assets/目录下的文件夹。

您还需要确保在进行 iOS 构建时没有任何构建问题(它们可能不会出现在编辑器的正常停止/停止循环中)并且您没有旧版“Play服务解析器”文件夹。

您可能还想尝试通过 EDM4U 菜单手动安装 CocoaPods:

如果您最近迁移到 MacOS Catalina,或者完全 uninstall 然后重新安装 cocoapods cocoapods。

我希望这些解决方案之一有所帮助!

--帕特里克

【讨论】:

以上是关于Unity 中的 Firebase / Google VR 链接器错误 - iOS的主要内容,如果未能解决你的问题,请参考以下文章

Unity 中的 Firebase - 禁用持久性

使用 Unity 进行 Firebase 电话身份验证

无法从 Android 上 Unity 中的 Firebase 快照获取“空”值

Unity 中的 Google Firebase 身份验证:如何读取错误代码

无法从unity3d中的firebase实时数据库中检索数据

从 Firebase 中的实时数据库获取数据后,无法写入 Unity 的 TMPro 文本字段