Моя компания хотела бы предложить два разных SDK для разработки под iOS вместе с примером приложения, которое использует каждый. Оба SDK используют много общего кода, который не является частью общедоступного интерфейса любого из SDK.
Я бы хотел структурировать проекты так, чтобы у меня был общий код в одной статической библиотечной инфраструктуре (которую мы храним конфиденциально), и чтобы каждый SDK представлял собой собственную статическую библиотечную среду (которую мы опубликуем). Каждая структура SDK зависит от общей платформы.
У меня почти все настроено и работает, за исключением одной вещи ... В общей библиотеке есть несколько родительских классов, которые используются в коде SDK. Чтобы опубликовать подклассы в коде SDK, мне нужно экспортировать заголовки для родительского класса (который находится только в частной общей структуре) вместе со структурой SDK.
Есть предложения, как решить эту проблему? Вот самые важные приоритеты:
- Клиенты могут загрузить единый фреймворк и заставить его просто работать
- Мы не дублируем код в нескольких проектах