在任何目标中都找不到“内容视图预览”的Xcode12.3SwiftUIPreview1
我看到其他人在 Xcode 11 和 12 中使用 SwiftUI Previews 发布了问题,但在其他地方没有看到这个问题。
在 Xcode 11 中运行的旧项目在 Xcode 12 中加载,无论预览内容多么简单,都无法启动预览。
实际预览代码:
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
Text("I heart Xcode")
.previewDevice("iPhone 11")
}
}
单击“继续”或“重试”后:
couldNotFindInputNodeInBuiltGraphError<XcodeGraphSource, PreviewInstance>:在任何目标中都找不到“内容视图预览”的预览 1
“内容视图预览”的预览 1 必须至少属于当前方案中的一个目标才能使用预览
元素:PreviewInstance(destinationDescription: UVPreviewPipeline.AnyPreviewDestinationDescription(storage: UVPreviewPipeline.(unknown context at $1382211e0).AnyPreviewDestinationDescriptionBoxImpl<UVIntegration.SimulatorPreviewDestinationDescription>),previewIdentity:UVPreviewPipeline[内容预览类型:内容预览类型:内容预览类型:应用设备:iPhone 11 索引:0 布局:设备supportsLive:true supportsOnDevice:true),variant:nil,variantedIdentifier:ContentView_Previews[0],identifier:AnyHashable(ContentView_Previews[0]))
我只有一个目标,和以前一样,没有特殊配置。我试过重新加载 Xcode 以及将所有源文件复制到一个新目录(在某处看到那个)。
其他任何人都能够解析此错误消息或就如何修复 SwiftUI 预览提出建议?
谢谢。
回答
我的方案和解决方案与上述不同。
我今天在将所有视图移动到“视图”组文件夹时遇到了这个错误。然后我的最新视图不会生成预览并且 xcode 显示报告的错误。
预览提供程序“您的视图”必须至少属于当前方案中的一个目标才能使用预览
此错误指向我当前未处理的现有视图,但它是一个打开的选项卡。
我关闭了所有带有在文件重组之前打开的视图的选项卡。然后我重新打开我正在处理的视图,xcode 开始重新显示预览。
- Makes no sense, but it works. Thanks!
回答
一个偶然的机会,我意识到为什么预览在我的从头开始的项目中被破坏了。原因是我最初在安装过程中添加的“版本控制”构建阶段:
xcrun agvtool next-version -all
将其包装到 Previews 检查中后,一切又好了:
if [ $ENABLE_PREVIEWS == "NO" ]
then
xcrun agvtool next-version -all
fi