Наше приложение поддерживает iOS 12 и выше, однако у нас есть две новых локальных фреймворка «Jello» и «Wizdom» в приложении, но они поддерживают только iOS 13 и более поздние версии (поэтому они могут использовать Combine и SwiftUI) .
Приложение слабо связывается с Jello, Wizdom, Combine и SwiftUI. Основной модуль BaseUI приложения - это то, что на самом деле импортирует Jello. BaseUI поддерживает iOS 12 и выше, поэтому он также слабо связывается с Jello et c.
Однако мы сталкиваемся с проблемой, когда BaseUI не компилируется из-за ошибки: Compiling for iOS 12.0, but module 'Jello' has a minimum deployment target of iOS 13.0
.
Как я могу сделать импорт условным при доступности iOS 13 (т.е. не импортировать его, если iOS 13 недоступен)?
(Пока что единственный обходной путь I ' Мы обнаружили, что нужно создать оболочку Objective C вокруг Jello и получить к ней доступ через эту оболочку, но это неудобно и неудобно. Я также пробовал обернуть весь этот файл с помощью #if canImport(SwiftUI) ... #endif
, но это тоже не работает, потому что кажется, что это это просто проверка во время компиляции.)