Unity导出iOS Xcode编译报错:ARFoundation相关Undefined Symbols
针对你用Unity 2020.3.25f1搭建ARFoundation/ARKit项目,导出Xcode 14.0编译时出现的Undefined symbol系列错误,可按以下步骤排查解决:
检查AR包的完整性与版本匹配
确认Unity中ARFoundation和ARKit XR Plugin的版本与2020.3.25f1兼容(ARFoundation 4.x适配Unity 2020 LTS),删除项目根目录的Library文件夹后重新导入包,避免文件损坏导致的符号缺失;导出Xcode项目时选择“Export as Xcode Project”,而非Workspace模式。修复Xcode链接配置
打开Xcode项目,进入目标的Build Settings:- 找到
Other Linker Flags,添加-ObjC和-framework ARKit; - 切换到
Build Phases的Link Binary With Libraries,确认ARKit.framework已添加,未添加则手动导入。
- 找到
清理缓存重新导出编译
在Unity中执行Assets -> Reimport All,删除Temp、Library文件夹后重新导出Xcode项目;在Xcode中执行Product -> Clean Build Folder,重启Xcode后再尝试编译。排查自定义/第三方代码冲突
错误中的_ARFoundationSamples_GetCurrentThermalState、_DoSomethingWithSession属于自定义或示例代码符号,检查项目是否引用了ARFoundation Samples的代码但未包含对应实现文件,或这些函数的定义被误删;若有第三方AR插件,暂时禁用排查冲突。调整版本兼容性
Unity 2020.3.25f1官方推荐Xcode版本为12.4-13.2,Xcode 14.0存在兼容风险,可尝试降级Xcode到13.x版本;或升级Unity到2020.3系列最新补丁版(如2020.3.48f1),官方后续补丁已修复部分高版本Xcode兼容问题。
内容的提问来源于stack exchange,提问作者DaSchuh

