我有一个支持 iOS 10、macOS 10.13、tvOS 10 和 watchOS 2 的 Swift 包。我希望这个包公开一些 SwiftUI 功能,当引用模块可以导入 SwiftUI 时可以使用这些功能。例如,使我的包类型(Persisted
)符合 SwiftUI 协议(protocol) DynamicProperty
:
#if canImport(SwiftUI)
import SwiftUI
@available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *)
extension Persisted: DynamicProperty { }
#endif
有了上面的内容,在为“任何 iOS 设备 (arm64)”构建时不再构建项目 - 我收到编译器错误:
Cannot find type 'DynamicProperty' in scope
当我将构建目标更改为任何 iPhone 模拟器时,它构建正常。在为“任何 Mac”、“任何 tvOS 设备”等构建时,它也构建正常。我需要做什么才能为任何 iOS 构建包?
最佳答案
根据 this reddit post ,它与 SwiftUI 在某些 ARM 架构上的可用性有关。
以下条件为我解决了这个问题:
#if canImport(SwiftUI) && (!os(iOS) || arch(arm64))
关于ios - 为 "Any iOS Device"构建 Swift 包时找不到 SwiftUI 或 Combine 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66716119/