Сторонний фреймворк в устаревшем проекте iOS: старый ARCH не поддерживается
Я добавляю сторонний фреймворк в свой устаревший проект с минимальной целью развертывания iOS 9, однако сам фреймворк имеет минимальную поддерживаемую версию iOS 13. Обычно, если разница версий не так велика, я могу слабо свяжите фреймворк и проверьте версию системы во время выполнения (т.е.
Я знаю, что в конце концов мне нужно увеличить целевую версию развертывания приложения, чтобы решить проблему ARCH, но если моя цель - создать проект только с интегрированной сторонней структурой, могу ли я что-нибудь сделать?
Пока я пробовал:
- Использование SDK в отдельной структуре в рамках того же проекта, у которого есть более высокая целевая версия развертывания, соответствующая минимуму, требуемому сторонней структурой, но он не будет работать, когда я импортирую структуру в основную цель:
Компиляция для iOS 9, но модуль AnotherTargetFramework имеет минимальную цель развертывания iOS 13.0.
Использование SDK в отдельной цели, наличие класса, принадлежащего обеим целям, использование сторонней платформы или фиктивной реализации на основе версии iOS (т. Е.
), но аналогично 1, при построении основной цели, использующей , он не может найти классы, принадлежащие только другой цели. Добавьте пользовательский макрос, скажем, оберните использование сторонней структуры в
, и иметь схему со значением 1, затем скрипт фазы сборки, проверяющий значение , если это , увеличьте целевую версию развертывания.
Пока кажется, что 3 работает, но есть ли лучший и более чистый способ добиться того же без особого влияния на настройки проекта?
Спасибо!