Разработка и одновременное использование собственных SDK для iOS - PullRequest
0 голосов
/ 13 февраля 2019

Наша мобильная команда использует SDK для разработки нашего нового продукта.В настоящее время у нас есть базовая логика домена в одном проекте xcode, многократно используемый пользовательский интерфейс в другом, а затем третий проект, который реализует первые два в качестве SDK.

Это прекрасно работает под наблюдением одного общего репозитория Github,поэтому, когда новая функция требует изменений от всех трех, SCM отслеживает изменения в каждом и отправляет один PR.

Теперь, когда мы приближаемся к дате выпуска, цель состоит в том, чтобы обработать два поддерживающих SDKкак внешние пакеты, которые будут независимо версионированы и потреблены другими клиентами, а не нами, через какую-либо форму менеджера зависимостей, такую ​​как Carthage или CocoaPods.Чтобы достичь этого, мы считаем, что каждый проект заслуживает отдельного независимого контроля версий.Таким образом, мы пошли по пути разделения кода на разные репозитории.

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

Две стратегии, которые мы потерпели неудачу.

  • Отдельные репозитории + подмодули git
  • Ссылки на локальные и производственные зависимости (например, Cartfile)

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

...