Unity集成Firebase SDK构建tvOS项目报错求助
问题描述
使用环境:macOS 13.1、tvOS 16.2、Xcode 14.2、Unity 2021.3.16f1、Cocoapods 1.11.3、Firebase SDK for Unity 10.3。
可正常从Unity构建macOS和iOS项目,但切换目标为tvOS真机时,项目出现数百个Undefined symbols for architecture arm64类型的构建错误,示例错误如下:
Undefined symbols for architecture arm64: "_Firebase_App_CSharp_AppEnableLogCallback", referenced from: _AppUtil_AppEnableLogCallback_m9FE8159D116019E4E918F4B7CEC39687DD64B2EA in Firebase.App.o _AppUtilPINVOKE_AppEnableLogCallback_m5BB69B725FD3DF1FE26C20DE516F14E02E82BDB3 in Firebase.App.o "_Firebase_App_CSharp_AppGetLogLevel", referenced from: _AppUtilPINVOKE_AppGetLogLevel_m1FA70677F6D87B20549848E73B88B7A9CE5E6A33 in Firebase.App.o _AppUtil_AppGetLogLevel_m613922E721681B614FB13D09809624C3EA70497E in Firebase.App.o "_Firebase_App_CSharp_AppOptionsInternal_ApiKey_get", referenced from: _AppOptionsInternal_get_ApiKey_m4FEA968CCE295C61306024A53B87EB462C793FDD in Firebase.App.o _AppUtilPINVOKE_AppOptionsInternal_ApiKey_get_mE56BE832D66D5DF3061815D009AE7F2AEB6C59F8 in Firebase.App.o "_Firebase_App_CSharp_AppOptionsInternal_ApiKey_set", referenced from: _AppOptionsInternal_set_ApiKey_mCF8BDC7C43BB152665C3F48096C5B239291B75DD in Firebase.App.o _AppUtilPINVOKE_AppOptionsInternal_ApiKey_set_m47AA8DEF19EB00D363BD710D4AB35D0F71D3810C in Firebase.App.o
已查阅网络未发现同类问题,疑似构建缺失文件但未找到,想了解如何解决该构建问题,或是Firebase SDK是否不支持tvOS(原本期望能像iOS和macOS一样正常构建)。
解决方案
核心原因
Firebase Unity SDK官方不支持tvOS,这是问题的根本所在。官方明确标注,Unity SDK仅支持iOS、Android、macOS、Windows、Linux平台,没有为tvOS编译对应的arm64架构原生库,导致构建时出现符号未定义的错误。
可选处理方式
1. 放弃tvOS平台的Firebase功能
如果项目对tvOS的Firebase需求不是必须,直接移除Unity项目中的Firebase SDK,即可正常构建tvOS项目。
2. 原生集成 workaround(需自行维护)
若必须在tvOS上使用Firebase功能,只能绕开Unity SDK,采用原生集成方式:
- 从Unity项目中移除所有Firebase Unity插件
- 导出tvOS Xcode项目后,通过CocoaPods集成原生Firebase tvOS SDK(原生Firebase是支持tvOS的)
- 编写Objective-C/Swift桥接代码,暴露Firebase功能接口,再让Unity的C#代码通过
[DllImport]调用这些原生接口 - 注意:这种方式需要自行维护桥接逻辑,Unity侧原有的Firebase相关代码需全部重写,且后续版本兼容性需要自己跟进
验证方式
- 检查Unity项目中Firebase插件的
Plugins目录,会发现只有iOS/macOS的.a库文件,没有tvOS版本的库 - 移除Firebase Unity SDK后重新构建tvOS项目,若错误消失,即可确认是SDK平台支持问题
内容的提问来源于stack exchange,提问作者DescendantOfLoto
相关产品推荐
相关产品推荐

