у нас действительно странная проблема, которая создает проблемы в нашем производственном коде. По сути, мы создали фреймворк, который имеет несколько отдельных необязательных фреймворков. Прямо сейчас мы получаем доступ к коду из фреймворка со следующей логикой:
#if canImport(optionalFramework)
firstMethodFromTheFramework()
secondMethodFromTheFramework()
#endif
Проблема в том, что затем мы распространяем нашу основную инфраструктуру с CocoaPods, даже если клиент интегрирует дополнительную Subspec, наш код не может ссылаться на дополнительные платформы .. , поэтому он не импортирует платформы и не вызывает дополнительные методы. Так что это не работает полностью и создает массу проблем ... Мы просто не понимаем, почему разработка IOS не допускает такие функции и такую архитектуру?
& # X200B;
Гораздо лучше модулировать фреймворки, чем создавать гигантские фреймворки, которые только увеличивают размер и сложность.
Может быть, есть другие способы доступа к фреймворку из необязательных фреймворков, если клиент интегрирует их?
& # x200B;
Мы действительно чувствуем себя неуверенно по поводу всей этой ситуации, и это крайне важно для всего нашего проекта.
& # X200B;
Еще раз уточню: наша основная структура вообще не включает в себя дополнительные платформы. Он просто использует флаги #if canImport (). Клиент должен нести ответственность за добавление модулей, а затем фреймворк должен автоматически начать выполнение кода