Unity AR Foundation Xcode项目arm64架构下出现未定义符号问题
解决AR Foundation示例iOS打包的链接器问题
我之前在处理Unity 2019.x和Xcode10.x的AR项目时,也碰到过一模一样的链接器问题,结合你描述的场景(默认AR Foundation示例、Unity 2019.1.5f1、Xcode10.2.1、arm64架构),可以按以下步骤排查修复:
确认Unity Player Settings的框架依赖
打开Unity的Player Settings→iOS→Other Settings,确保:Required Frameworks里已经勾选了ARKit(AR Foundation依赖ARKit,部分Unity版本默认可能未自动添加)Architecture严格设置为ARM64,不要勾选Universal或其他架构选项
调整Xcode链接器配置
导出Xcode项目后,打开项目并选中主Target,进入Build Settings→Linking:- 在
Other Linker Flags中添加-ObjC和-framework ARKit,确保链接器能正确找到ARKit相关符号 - 将
Dead Code Stripping设置为NO,避免AR Foundation的必要代码被误判为无用代码剥离
- 在
切换到IL2CPP脚本后端
在Unity的Player Settings→iOS→Other Settings里,把Scripting Backend从Mono切换为IL2CPP。arm64架构下IL2CPP的兼容性更好,Mono在旧版Xcode中容易出现链接器符号缺失的问题清理缓存后重新构建
- 在Unity中选择
File→Build Settings→Clean Build,清空之前的构建缓存 - 重新导出Xcode项目,然后在Xcode中选择
Product→Clean Build Folder,再尝试编译
- 在Unity中选择
检查iOS部署目标版本
ARKit要求最低iOS版本为11.0,确认Xcode项目的Deployment Target设置为iOS 11.0或更高(Unity导出时可能默认设置较低,导致框架不兼容)
这些步骤基本能覆盖你遇到的链接器问题,我之前用这套流程解决过相同版本组合下的报错。
内容的提问来源于stack exchange,提问作者Kourosh
相关产品推荐
相关产品推荐

