默认RealityKit应用程序无法正常运行

问题描述

使用Xcode中的RealityKit运行生成的Augmented Reality应用程序时,屏幕上没有任何显示,并且控制台上出现奇怪的日志:

2020-09-16 16:54:29.246883+0200 TestAR[494:29654] Metal GPU Frame Capture Enabled 
2020-09-16 16:54:29.247203+0200 TestAR[494:29654] Metal API Validation Enabled
2020-09-16 16:54:29.792709+0200 TestAR[494:29654] Compiler failed to build request
2020-09-16 16:54:29.792957+0200 TestAR[494:29654] [Graphics] makeRenderPipelineState failed [output of type ushort is not compatible with a MTLPixelFormatR16Float color attachement.].
2020-09-16 16:54:29.792989+0200 TestAR[494:29654] [Graphics] makeRenderPipelineState failed.

我尝试在两个设备上运行该应用程序,结果是相同的。还尝试使用Xcode 12,结果相同。更令人不安的是,我让该应用程序在20多次尝试中像两次一样正常工作,而没有进行任何更改,只是杀死了该应用程序,然后重新启动或关闭xcode并重新启动。

这是代码,但这只是生成的基本代码:

struct ContentView : View {
    var body: some View {
        return ARViewContainer().edgesIgnoringSafeArea(.all)
    }
}

struct ARViewContainer: UIViewRepresentable {
    
    func makeUIView(context: Context) -> ARView {       
        let arView = ARView(frame: .zero)
        let boxAnchor = try! Experience.loadBox()
        arView.scene.anchors.append(boxAnchor)
        return arView       
    } 
    func updateUIView(_ uiView: ARView,context: Context) {}
}

目前我还不太了解自己在做什么,这里是其他信息:

  • macOS Catalina v10.15.5
  • iPhone X 13.5.1
  • iPhone X 13.7
  • iPhone 6S Plus 13.5.1
  • Xcode 11.7
  • Xcode 12

解决方法

首先,您必须确保没有更改AppDelegate.swift文件中的内容。窗口的根视图控制器必须来自contentView

let contentView = ContentView()
window.rootViewController = UIHostingController(rootView: contentView)
window.makeKeyAndVisible()


解决方案I

有时在Xcode中,您可能会发现一个错误–由于在中间编译数据文件夹中发现某些错误,因此无法启动或运行您的应用程序。您需要做的就是清空DerivedData目录。

为此,请在Finder中按快捷键 Cmd - Shift - G 并指定以下路径以转到所需目录:>

~/Library/Developer/Xcode/DerivedData/

在删除DerivedData目录的内容之后,已编译的应用程序必须能够按预期运行。

有关DerivedData的其他信息:

DerivedData是默认情况下位于~/Library/Developer/Xcode/DerivedData中的文件夹。 Xcode是存储各种中间构建结果,生成的索引等的位置。可以在Xcode偏好设置(“位置”标签)中配置DerivedData位置。


解决方案II

如果以上两个步骤均无效,则应重新安装Xcode。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...