【问题标题】:SwiftUI - Unknown preview provider "ContentView_Previews_" when previewing. Happens in a brand-new projectSwiftUI - 预览时未知的预览提供程序“ContentView_Previews_”。发生在一个全新的项目中
【发布时间】: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)。

【问题讨论】:

  • 当你尝试聪明并且项目名称以#开头时也会发生这种情况

标签: ios swift xcode swiftui


【解决方案1】:

我遇到了同样的问题。最终,我发现当项目名称以数字字符开头时会发生这种情况,例如"01-test"。创建一个没有数字作为第一个字符的新项目就可以了,例如"test".

【讨论】:

  • 感谢发帖。我已经有这个问题好几天了,但直到今天早上我唯一的错误是 5 秒超时。想添加以防其他人只收到超时错误。
【解决方案2】:

我的项目中有同样的问题。我正在处理的项目名称以数字字符开头,Xcode 在项目文件的几个地方用下划线 _ 替换该字符。在 Service Provider 末尾添加完全相同的下划线,因此所有 SwiftUI 预览都停止工作,出现错误 Unknown preview provider "ContentView_Previews_ 唯一可行的解​​决方案是删除项目名称开头的数字字符,如 Sorceror 提供的答案。 不幸的是,我们并非总是可以更改项目名称来解决问题,最终在没有预览的情况下处理 SwiftUI 项目 - 必须使用旧方法 - 构建并运行整个项目以查看模拟器或真实设备中的更改。 不幸的是,我没有找到另一种方法来解决这个问题并让 SwiftUI 预览正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-23
    • 2020-06-30
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 2019-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多