首页 > 解决方案 > 从 SPM 包运行 SwiftUI 预览

问题描述

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

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

但是,当我尝试运行任何视图的预览时,我收到以下错误: 在此处输入图像描述

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

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

标签: iosswiftswiftuiswift-package-manager

解决方案


Xcode 12

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

演示

Xcode 11+

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

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

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


推荐阅读