Сторонний фреймворк в устаревшем проекте iOS: старый ARCH не поддерживается

Я добавляю сторонний фреймворк в свой устаревший проект с минимальной целью развертывания iOS 9, однако сам фреймворк имеет минимальную поддерживаемую версию iOS 13. Обычно, если разница версий не так велика, я могу слабо свяжите фреймворк и проверьте версию системы во время выполнения (т.е. , поэтому я даже не могу создать проект после интеграции стороннего фреймворка.

Я знаю, что в конце концов мне нужно увеличить целевую версию развертывания приложения, чтобы решить проблему ARCH, но если моя цель - создать проект только с интегрированной сторонней структурой, могу ли я что-нибудь сделать?

Пока я пробовал:

  1. Использование SDK в отдельной структуре в рамках того же проекта, у которого есть более высокая целевая версия развертывания, соответствующая минимуму, требуемому сторонней структурой, но он не будет работать, когда я импортирую структуру в основную цель:

Компиляция для iOS 9, но модуль AnotherTargetFramework имеет минимальную цель развертывания iOS 13.0.

  1. Использование SDK в отдельной цели, наличие класса, принадлежащего обеим целям, использование сторонней платформы или фиктивной реализации на основе версии iOS (т. Е. ), но аналогично 1, при построении основной цели, использующей , он не может найти классы, принадлежащие только другой цели.

  2. Добавьте пользовательский макрос, скажем, оберните использование сторонней структуры в , и иметь схему со значением 1, затем скрипт фазы сборки, проверяющий значение , если это , увеличьте целевую версию развертывания.

Пока кажется, что 3 работает, но есть ли лучший и более чистый способ добиться того же без особого влияния на настройки проекта?

Спасибо!

0 ответов

Другие вопросы по тегам