SwiftUI - 预览时未知的预览提供程序“ContentView_Previews_”。发生在一个全新的项目中
Posted
技术标签:
【中文标题】SwiftUI - 预览时未知的预览提供程序“ContentView_Previews_”。发生在一个全新的项目中【英文标题】:SwiftUI - Unknown preview provider "ContentView_Previews_" when previewing. Happens in a brand-new project 【发布时间】:2021-01-24 17:20:47 【问题描述】:我有这个简单的观点。
import SwiftUI
struct ContentView: View
var body: some View
Text("Hello")
struct ContentView_Previews: PreviewProvider
static var previews: some View
ContentView()
通常预览效果很好。但是今天,我收到了这个错误Unknown preview provider "ContentView_Previews_":
按 再试一次 不起作用。当我按 Diagnostics 时,会显示:
RemoteHumanReadableError: Failed to update preview.
Error encountered when sending 'previewInstances' message to agent.
==================================
| RemoteHumanReadableError: Unknown preview provider "ContentView_Previews_"
|
| 5SwiftUI does not contain a preview provider named "ContentView_Previews_". Check your build settings to ensure the preview provider is compiled into your product.
|
| Mangled name: 009_SwiftUI_0021ContentView_Previews_V
所以我认为 Xcode 可能出现故障,并希望在预览结构的末尾添加下划线。我补充说:
struct ContentView_Previews_: PreviewProvider
但现在我明白了,Unknown preview provider "ContentView_Previews__
。
还有其他人遇到过这个吗?我的 Xcode 版本是 12.3 (12C33)。
【问题讨论】:
当你尝试聪明并且项目名称以#开头时也会发生这种情况 【参考方案1】:我遇到了同样的问题。最终,我发现当项目名称以数字字符开头时会发生这种情况,例如"01-test"
。创建一个没有数字作为第一个字符的新项目就可以了,例如"test"
.
【讨论】:
感谢发帖。我已经有这个问题好几天了,但直到今天早上我唯一的错误是 5 秒超时。想添加以防其他人只收到超时错误。【参考方案2】:我的项目中有同样的问题。我正在处理的项目名称以数字字符开头,Xcode 在项目文件的几个地方用下划线 _
替换该字符。在 Service Provider 末尾添加完全相同的下划线,因此所有 SwiftUI 预览都停止工作,出现错误 Unknown preview provider "ContentView_Previews_
唯一可行的解决方案是删除项目名称开头的数字字符,如 Sorceror 提供的答案。
不幸的是,我们并非总是可以更改项目名称来解决问题,最终在没有预览的情况下处理 SwiftUI 项目 - 必须使用旧方法 - 构建并运行整个项目以查看模拟器或真实设备中的更改。
不幸的是,我没有找到另一种方法来解决这个问题并让 SwiftUI 预览正常工作。
【讨论】:
以上是关于SwiftUI - 预览时未知的预览提供程序“ContentView_Previews_”。发生在一个全新的项目中的主要内容,如果未能解决你的问题,请参考以下文章
使用 SwiftUI @Binding 预览崩溃:与应用程序的通信中断