xcode - 在 Unity/Xcode 上构建 iOS 失败
问题描述
我目前正在尝试建立一个 Unity 项目,该项目为 VR 设置为 iOS 的 AR。我正在使用 AR Foundation 插件 + ARKit/ARCore 插件。尝试使用 Xcode 构建它并在我的 iPhone 上运行,但我遇到了这些错误。
尝试更改一堆播放器设置。
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_AREnvironmentProbeAnchor", referenced from:
objc-class-ref in UnityARKit.a(ARKitXREnvironmentProbeProvider.o)
"_OBJC_CLASS_$_ARCollaborationData", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRSessionProvider.o)
"___isPlatformVersionAtLeast", referenced from:
_UnityARKit_Camera_AcquireConfigurations in UnityARKit.a(ARKitXRCameraProvider.o)
_UnityARKit_Camera_TryGetCurrentConfiguration in UnityARKit.a(ARKitXRCameraProvider.o)
_UnityARKit_Camera_TrySetCurrentConfiguration in UnityARKit.a(ARKitXRCameraProvider.o)
(anonymous namespace)::ARKitXRCameraProvider::ResetLocalConfigurationState() in UnityARKit.a(ARKitXRCameraProvider.o)
(anonymous namespace)::ARKitXRCameraProvider::HandleARKitEvent(UnityARKitEvent, void*, int) in UnityARKit.a(ARKitXRCameraProvider.o)
_UnityARKit_EnvironmentProbeProvider_Construct in UnityARKit.a(ARKitXREnvironmentProbeWrapper.o)
_UnityARKit_EnvironmentProbeProvider_Destruct in UnityARKit.a(ARKitXREnvironmentProbeWrapper.o)
...
"_OBJC_CLASS_$_ARBodyAnchor", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRHumanBodyProvider.o)
"_OBJC_CLASS_$_ARImageTrackingConfiguration", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRImageTrackingProvider.o)
"_OBJC_CLASS_$_ARBodyTrackingConfiguration", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRHumanBodyProvider.o)
"_OBJC_CLASS_$_ARImageAnchor", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRImageTrackingProvider.o)
"_OBJC_CLASS_$_ARSkeletonDefinition", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRHumanBodyProvider.o)
"_OBJC_CLASS_$_ARObjectAnchor", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRObjectTrackingProvider.o)
"_OBJC_CLASS_$_ARReferenceImage", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRImageTrackingProvider.o)
"_OBJC_CLASS_$_ARMatteGenerator", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRHumanBodyProvider.o)
"_OBJC_CLASS_$_ARReferenceObject", referenced from:
objc-class-ref in UnityARKit.a(ARKitXRObjectTrackingProvider.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
解决方案
我在我的项目中解决了这个问题。(感谢@saif 提供Unity 论坛链接)
罪魁祸首是 Unity 中的错误 ARkit XR 插件版本,它试图在 Xcode 中使用更高版本的 AR Kit 中的功能,从而给出与此处相关的错误。
我设法在我的设置中开始工作(对于 2018.4.x 中的那些)
- 统一2018.4.5f1
- AR 基础 1.5.0-preview.6
- AR 子系统 2.2.0-preview.3
- ARKit XR 插件 2.1.1(从 2.1.0-preview.5 更新)
- XCode 10.3(构建到 iOS 12.4 设备)
如果您使用 AR Foundation 2.x 运行 Unity 2019.x,您可能希望在 Github 上的 AR Foundation 示例中找到正确的 ARKit XR 插件
推荐阅读
- cplex - CPLEX OPL 错误 5002:即使设置最佳性目标 = 3,约束不凸仍然继续
- javascript - 问题在 Express.js 中设置新路由
- python - 仅对 NaN 值应用函数
- r - 用 tidyverse 填写 NA 的值
- javascript - 在 F11/全屏模式下,YouTube IFrame 会放大很多,结果导致视频质量变差
- javascript - 使用 ArrayCamera 会导致 1 个单位以外的对象消失
- javascript - 如何使用 JavaScript 检查数组中的项目是否唯一
- r - 有没有办法对列的特定行求和?
- suitescript2.0 - SuiteScript 培训 - 未定义参考错误
- tensorflow - model.predict_generator() 的输出]