去年 11 月末,我在写 SwiftUI 代码时,常常遇到 Previews 不工作的问题。用 SwiftUI 就是为了预览方便,因此 Previews 不工作是不能忍的。当时用了一个 Workaround 来解决这个问题,没想到今天在 Xcode 12.5 beta 2 又发生了类似情况,之前的 Workaround 依然有效,于是写篇记录。

SwiftUI Previews 不工作的现象是:

swiftui-previews-broken.jpeg

省略掉的文字大约是:XXXTests.swift must belong to at least one target in the current scheme in order to use previews

非常诡异,我的这个 XXXTests.swift 明明是隶属于 Tests 这个 Target 的,不应该属于任何其他 Target,SwiftUI Previews 不工作居然是提示这个。

解决方法也很简单:把这个 XXXTests.swift 移除引用,再加回来。之后就可以一直正常了…

在官方论坛的《Cannot preview SwiftUI》里,可以看到各种各样花式的 SwiftUI Previews 不工作的问题,其中也有我遇到的这种 Case。

SwiftUI 今年马上就要满两岁了,即将开始它的第三年了…Xcode 真的要跟上才行啊。