构建存档时找不到 Apple 框架

Apple framework not found when building Archive

我正在尝试使用 RealityKit 向现有应用程序添加对 AR 功能的可选支持。该应用程序在 iOS 10 和 iOS 13 设备上构建和运行良好,仅在后者启用了可选功能。但是,当我为通用 iOS 设备构建或尝试存档时,我在任何 import RealityKit 语句中收到错误 No such module 'RealityKit',并且构建失败。

该应用程序的构建目标是 iOS 10,RealityKit 在 iOS 13 中可用。我添加了守卫以仅构建某些 类 如果 @available( iOS 13.0, *) 并在我的构建设置中使用 -weak_framework RealityKit 其他链接器标志弱链接 RealityKit 框架。

当我执行发布而不是调试构建时会发生同样的事情,但我在方案设置中找不到任何差异。我没有使用 pods,RealityKit 是 iOS 13 中引入的标准 Apple 框架。

有什么办法解决这个问题吗?

通过转至 Build Settings、找到 Framework Search Paths 检查您的项目设置并添加 $(SRCROOT) 并确保它是递归的。

看起来解决这个问题的方法是使用 canImport(module) 预处理器指令。这对我有用:

#if canImport(RealityKit)

import RealityKit

@available(iOS 13.0, *)
class MyARClass {

    @IBOutlet weak var arView: ARView!

...
}

#endif