从 SPM 包运行 SwiftUI 预览

Jul*_* D. 13 ios swift swift-package-manager swiftui

我正在开发一个 Swift 包管理器包,其中需要包含 SwiftUI 视图。

每个 SwiftUI 视图都应该有一个预览。

但是,当我尝试运行任何视图的预览时,出现以下错误: 在此处输入图片说明

我找到了一种方法,如果我将包方案更改为主要目标方案,它就会起作用。但是使用这种方式我必须一直在方案之间切换,并且每次我想运行包的预览时都需要构建主要目标。

是否可以直接从 SPM 包中以某种方式运行 SwiftUI 预览而不构建主要目标?

Asp*_*eri 5

Xcode 12

使用 Xcode 12,SwiftUI 预览版在独立包中“按原样”工作

演示

Xcode 11+

是否可以直接从 SPM 包中以某种方式运行 SwiftUI 预览而不构建主要目标?

不,至少到现在为止(Xcode 11.4beta3)。预览是模拟器的一个变体,它需要 UI 可执行文件来为您的视图预览设置全功能的运行时上下文。

解决方案(来自实践):设置 SwiftUI 可执行目标,该目标并行包含包(或包本身,依赖)中的所有文件并执行所有 SwiftUI 开发,但包本身在持续集成过程中构建(包括单元测试)。