ios - 为 "Any iOS Device"构建 Swift 包时找不到 SwiftUI 或 Combine 类型

标签 ios swift swiftui combine swift-package-manager

我有一个支持 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/

相关文章:

objective-c - 释放对象

ios - 如何将 Codable 协议(protocol)与引用类型一起使用?

Swift 委托(delegate)和协议(protocol)

SwiftUI:从屏幕上的 CGPoint 转换为 View 中的 CGPoint

swiftui - 如何在 SwiftUI 的新 map View 中制作可点击的图钉?

ios - 如何使用 SKPSMTPMessage 发送电子邮件,它将在电子邮件客户端中正常解析?

ios - ADAL 身份验证需要设备管理

swift - SKSpriteNode 未加载到屏幕上?

swift - 使用 Swift 计算最高和最低有效字节(MSB、LSB)

swift - SwiftUI Image 和 ZStack 的意外布局问题