有没有办法让 SwiftUI 预览忽略特定文件以防止再次构建?

Nat*_*wry 5 xcode coreml swiftui swiftui-previews

我们的 SwiftUI 项目中有一个 MLPackage 文件。每当我们尝试在视图文件上加载预览时,Xcode 就会陷入“构建预览”的无限循环中。构建成功,但立即开始另一个构建。因此,无法实际查看/使用预览。

重复构建

注意:警告不相关。

检查控制台日志(不在 Xcode 中)显示以下内容:

Xcode (PreviewsPipeline)
=== Requesting updating previews for reasons [
    File "foo.mlpackage" changed,
    Preview Settings changed,
]
Run Code Online (Sandbox Code Playgroud)

将模型完全从项目中取出可以解决这个问题,所以我很确定它们就是原因。我们还在编译时对模型进行加密,但这对于调试版本是禁用的。我们还尝试完全删除加密步骤,但没有感到高兴。

据我(不太)理解,mlpackage 包含元数据、描述拓扑的 .mlmodel 文件以及包含 NN 权重的压缩的weights.bin。我对该文件中“变化”的猜测是运行时执行一些预编译或解压缩并将结果存储在该包/文件中。

有没有办法告诉 SwiftUI 预览忽略某些文件、目录或模式?

这样,mlpackage 文件可以更改,并且不会重建预览。

M1 Mac Mini,Xcode 14.2 (14C18)