首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SPM包运行SwiftUI预览

从SPM包运行SwiftUI预览
EN

Stack Overflow用户
提问于 2020-01-14 10:37:24
回答 3查看 4.3K关注 0票数 14

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

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

但是,当我试图运行任何视图的预览时,都会出现以下错误:

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

可以在不构建主要目标的情况下直接从SPM包运行SwiftUI预览吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-23 12:46:05

Xcode 12

使用Xcode 12,SwiftUI预览就可以在独立的包中“按-应该”工作。

Xcode 11+

可以在不构建主要目标的情况下直接从SPM包运行SwiftUI预览吗?

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

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

票数 5
EN

Stack Overflow用户

发布于 2021-03-24 10:45:29

您需要的是在您的迅捷包声明中添加一个平台目标,如iOS,参见下面的示例(使用iOS(.v13)):

代码语言:javascript
复制
let package = Package(
    name: "NAME",
    platforms: [.iOS(.v13)],
    products: [
        // Products 
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
    ],
    targets: [
        // Targets
        // Test Targets
    ]
)

现在,确保在预览中使用相同的目标。当然,你可以添加更多。

票数 3
EN

Stack Overflow用户

发布于 2020-06-26 08:06:33

在Xcode 12中,这已经改变了。预览是在Swift包中启用的。实际上,添加了许多更改和新特性,以提高用户和开发人员对SwiftUI库扩展的体验。您可以观看 WWDC20会话以了解更多信息。

要使它在Xcode 12的第一个测试版中工作,您必须创建一个库Swift包。确保您的程序可以构建-并且SwiftUI是导入的。此外,请记住添加包清单中支持的平台--这些平台由SwiftUI和您的包代码支持。在方案选择器中,选择要预览的库和库支持的设备。在启用画布之后,预览应该是可见的。目前有一些粗糙的角落,但我希望错误和可用性将改善以后的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59732075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档