#if canImport () не работает должным образом с CocoaPods.Серьезная проблема - PullRequest
0 голосов
/ 08 марта 2019

у нас действительно странная проблема, которая создает проблемы в нашем производственном коде. По сути, мы создали фреймворк, который имеет несколько отдельных необязательных фреймворков. Прямо сейчас мы получаем доступ к коду из фреймворка со следующей логикой:

#if canImport(optionalFramework)
firstMethodFromTheFramework()
secondMethodFromTheFramework()
#endif

Проблема в том, что затем мы распространяем нашу основную инфраструктуру с CocoaPods, даже если клиент интегрирует дополнительную Subspec, наш код не может ссылаться на дополнительные платформы .. , поэтому он не импортирует платформы и не вызывает дополнительные методы. Так что это не работает полностью и создает массу проблем ... Мы просто не понимаем, почему разработка IOS не допускает такие функции и такую ​​архитектуру? & # X200B;

Гораздо лучше модулировать фреймворки, чем создавать гигантские фреймворки, которые только увеличивают размер и сложность.

Может быть, есть другие способы доступа к фреймворку из необязательных фреймворков, если клиент интегрирует их?

& # x200B;

Мы действительно чувствуем себя неуверенно по поводу всей этой ситуации, и это крайне важно для всего нашего проекта. & # X200B;

Еще раз уточню: наша основная структура вообще не включает в себя дополнительные платформы. Он просто использует флаги #if canImport (). Клиент должен нести ответственность за добавление модулей, а затем фреймворк должен автоматически начать выполнение кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...