我们的应用程序支持 iOS 12 及更高版本,但我们在应用程序中有两个新的本地框架“Jello”和“Wizdom”,但它们仅支持 iOS 13 及更高版本(因此它们可以使用 Combine 和 SwiftUI)。
该应用与 Jello、Wizdom、Combine 和 SwiftUI 的链接较弱。该应用程序的主要 BaseUI 模块实际上是导入 Jello 的。BaseUI 支持 iOS 12 及更高版本,因此它也弱链接到 Jello 等。
但是我们遇到了一个问题,BaseUI 由于错误而无法编译:Compiling for iOS 12.0, but module 'Jello' has a minimum deployment target of iOS 13.0.
如何使导入以 iOS 13 可用为条件(即,如果 iOS 13 不可用,则不要导入它)?
(到目前为止,我发现的唯一解决方法是在 Jello 周围创建一个 Objective C 包装器并通过该包装器访问它,但这既尴尬又笨拙。我也尝试用它来包装整个文件,#if canImport(SwiftUI) ... #endif但这也不起作用,因为它似乎这只是一个编译时检查。)