SwiftUI预览对我来说是坏的,当导入的Swift包之一对另一个平台有条件依赖时。
复制步骤:
- 创建具有2个目标的Xcode项目。一个用于macOS,另一个用于iOS
- 添加一个有条件依赖的Swift软件包,例如依赖于另一个软件包,但仅在iOS上。示例:
targets: [
.target(name: "Components",
dependencies: [
.productItem(name: "FloatingPanel", package: "FloatingPanel", condition: .when(platforms: [.iOS])),
]),
]
- 尝试在macOS上运行SwiftUI预览。这行不通
我得到的错误是no such module UIKit
。看起来Xcode正试图构建FloatingPanel
依赖关系,尽管它的条件指定了iOS平台。
有什么办法解决这个问题吗?
是的,我也有同样的问题。当为iOS构建时,条件适用于其他平台,但当为其他平台构建时,iOS依赖关系也总是包含在内。。。
在swift论坛上发帖:https://forums.swift.org/t/swiftpm-platform-conditional-target-dependancy-not-resolved-for-tvos/56767/2
有几个错误报告。。。