我项目的 iOS 部署目标设置为 iOS 9.0,我想在我的 iOS 13.0 及更高版本的应用程序中集成 Reality Kit

My project's iOS deployment target is set to iOS 9.0 and i want to integrate Reality Kit in my app for iOS 13.0 and up

RealityKit 仅适用于 iOS 13.0 及更高版本,当我尝试将其集成到我的项目中并且 运行 它在 iOS 12.0 或以下,应用程序崩溃并出现 abort_with_payload 错误。

我仍然希望我的应用在 iOS 9.0 - iOS 12.0 上 运行没有AR功能。有什么办法可以做到吗?

看看 canImport(module) 指令

#if canImport(RealityKit)
    import RealityKit
#endif

@available(iOS 13.0, *)
class MyClassWhichUsesRealityKit {

  func do() {
      let v = ARView(frame: .zero)
  }
}

来源:https://github.com/apple/swift-evolution/blob/master/proposals/0075-import-test.md

发生这种情况是因为框架 RealityKit 总是导入,即使设备没有该框架。解决方案是根据您使用的设备将其设为可选。

  1. 转到你的项目Build Settings
  2. 前往 Linking -> Other linker Flags
  3. 双击 Other linker Flags 个值添加一个新值。
  4. 按添加按钮然后输入 -weak_framework RealityKit

应该可以了。然后输入 运行 您的应用。

希望这对您有所帮助。快乐编码。 :D