繁体   English   中英

Firebase / Google VR linker Unity 中的错误 - iOS

[英]Firebase / Google VR linker error in Unity - iOS

我正在使用 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

知道为什么吗?

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

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

在 iOS 解析器设置中选择生成工作区的屏幕截图 显示 iOS 构建输出的屏幕截图 - xcworkspace 文件而不是 xcodeproj 周围的框

  1. 接下来,您需要确保Podfile存在于构建 output 目录中,并且它具有必要的 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

您可以在此处查看您需要哪些 pod 文件,但Unity 的外部依赖管理器 (EDM4U)应该已经为您处理了这个问题。 所以首先我要确保它已经安装和配置。

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

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

Unity 的外部依赖管理器

Assets/目录下的文件夹。

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

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

屏幕截图显示“Unity/iOS 解析器的资产/外部依赖管理器”下的“安装 Cocoapods”

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

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

——帕特里克

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM