SwiftUI / Xcode 错误 - 更新时间超过 5 秒

Mat*_*ack 30 xcode swiftui

当我尝试在画布中预览我的一个视图时,我不断收到以下错误:

PreviewUpdateTimedOutError:更新时间超过 5 秒

我所有的其他视图都加载得很好。

为什么会发生这种情况,我该如何解决?

我在 Xcode 11.4(公开发布)中使用 SwiftUI

小智 36

我停止使用模拟器并选择“任何 iOS 设备”,这解决了问题。


msm*_*lko 14

在我的情况下,问题是构建设置中的这一行:

在此处输入图片说明

我不小心更改了项目中的签名设置。具体来说,“签署身份”被设置为“签署本地运行。”。出于某些原因,SwiftUI 预览在那时不起作用。

简单地从构建设置(又名设置默认值)中删除这一行就解决了这个问题。


Fab*_*tel 10

从 Xcode 12.5.1 开始,该消息PreviewUpdateTimedOutError: Updating took more than 5 seconds很可能意味着您的应用程序崩溃,因此更新预览失败。不幸的是,崩溃的真正原因被这个无用的消息掩盖了(我无法理解为什么苹果会这样做)。要找出真正的原因,您需要:

  • 单击Diagnostics预览顶部无用错误消息旁边的
  • 在下一个对话框中,单击Generate Report>Reveal in Finder

这需要一点时间。然后 Finder 将打开并突出显示一个文件夹。打开该文件夹。在里面你会看到很多日志文件和文件夹。

如果您的应用程序确实崩溃了,您将看到一个名为 的文件夹CrashLogs,其中包含应用程序的崩溃日志,包括错误消息和堆栈跟踪。这应该可以帮助您解决导致预览中断的实际错误。

请注意,对我来说,有时CrashLogs即使我的应用程序确实崩溃了,它们也没有包含在报告中。重试预览并生成另一个报告为我解决了这个问题。不幸的是,整个错误报告过程对于预览来说似乎相当不稳定。


Moh*_*hit 7

尝试 Clean (Shift + ? + K) 和 Build (? + B) 再次构建 SwiftUI 项目,它适用于 Xcode 11.6。尝试构建一个基本的 hello world 应用程序。


Yan*_*eph 7

有时,错误显示并不是真正的错误。

对我来说,这是因为我错过了: .environmentObject(...)


dba*_*art 5

在我的情况下,问题是PreviewProvider被标记为private. 只需创建internal或删除private访问修饰符即可。

private /* <- remove */ struct YourView_Previews: PreviewProvider {
    static var previews: some View {
        // Your previews
    }
}
Run Code Online (Sandbox Code Playgroud)


Noo*_*ain 5

我使用的是版本 13.2.1 (13C100)。我有 Clean (Shift + \xe2\x8c\x98 + K) 和 Build (\xe2\x8c\x98 + B) 项目。但是,问题依然存在。

\n

然后,重新启动 Xcode。问题就消失了。

\n


小智 0

在 SwiftUI 中,您不能向 contentview 添加超过 10 个子视图,否则无法编译。