Unity集成Firebase Analytics构建Xcode项目时遇Undefined symbol错误
解决Unity导出Xcode后Firebase Analytics LogEvent引发的Undefined symbol错误
问题核心
项目集成ARCore、Firebase、Facebook SDK,此前双端构建正常。添加Firebase Analytics埋点代码FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventScreenView, new Parameter(FirebaseAnalytics.ParameterScreenName, "000_IntroScene"));后,Android正常但Xcode报Undefined symbol错误,移除代码则恢复。环境:MacOS 12.4、Unity 2021.3.1f1、Xcode 13.4.1、Firebase 9.1.0(已尝试升级至9.6.0、替换./Assets/Firebase/Editor目录无效)
可行解决方案
1. 排查iOS依赖链接完整性
- 打开Unity Package Manager,确认Firebase Analytics包的iOS资源完整,导出Xcode后检查
Pods目录下是否存在FirebaseAnalytics框架 - 在Xcode项目的
Build Phases->Link Binary With Libraries中,确认libFirebaseAnalytics.a或FirebaseAnalytics.framework已添加,若缺失则手动从Pods目录导入
2. 关闭Unity的代码剥离或添加强制加载标记
- 进入Unity
Player Settings->iOS->Other Settings,关闭Strip Engine Code选项,重新导出Xcode尝试构建 - 若关闭后正常,可针对性保留Firebase符号:在Xcode的
Other Linker Flags中添加-force_load $(SRCROOT)/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics(路径根据实际Pod安装位置调整)
3. 彻底清理缓存重新构建
- 关闭Xcode,删除项目目录下的
DerivedData文件夹,删除Pods目录后执行pod install重新安装依赖 - Unity端执行
Assets->Clear Cache,删除Library、Temp目录,重新导出Xcode项目
4. 修正代码写法避免平台编译混淆
- 确保代码引用完整命名空间,修改为:
避免因命名空间缺失导致iOS编译时找不到符号Firebase.Analytics.FirebaseAnalytics.LogEvent( Firebase.Analytics.FirebaseAnalytics.EventScreenView, new Firebase.Analytics.Parameter(Firebase.Analytics.FirebaseAnalytics.ParameterScreenName, "000_IntroScene") );
5. 调整Firebase版本适配Unity LTS
- 尝试降级Firebase至8.10.0版本,该版本与Unity 2021 LTS系列兼容性经过验证,可能解决高版本SDK的符号导出问题
内容的提问来源于stack exchange,提问作者Zero Chan
相关产品推荐
相关产品推荐

