Комментарии 2
Fastlane тоже занимаются поддержкой, https://github.com/CocoaPods/CocoaPods/issues/9148
Это хорошо для CI сборок своих фреймворков.
А как обновлять их в проектах? Руками подключать новую версию? И хранить подключённые фреймворки в репозитории проекта или как-то удобнее?
На самом деле не столь важно, какой из систем будет собираться конечный фреймворк.
Важно скорее то, как его подключать в качестве зависимости.
Если остановить свой выбор на Carthage, то можно воспользоваться поддержкой уже собранных зависимостей (Binary only frameworks), которые подтягиваются на основе файлов-спецификаций в формате JSON. Версионирование таких зависимостей немного отличается от работы с зависимостями, собираемыми из исходного кода, где конкретная версия библиотеки обозначается через релизный тэг в git. Разница в том, что версии зависимостей для Binary only frameworks определяются в файле-спецификации, а не на основе списка тэгов git.
Таким образом, для поддержки этой фичи Carthage при сборке библиотек на CI/CD системе, потребуется хранить и обновлять файл-спецификацию со списком собранных артефактов и ссылками на них.
Что касается хранения зависимостей в репозитории, тут возможны различные варианты.
Если делать этого не хочется, то можно оставить подтягивание зависимостей на совести Carthage на этапе сборки проекта. При этом, если хочется — не обязательно включать папку с подтянутыми зависимости в репозирий, читай включить её в .gitignore. Просто при каждой сборке проекта будет выполняться дополнительная операция по стягиванию/синхронизации зависимостей.
Xcode 11 и XCFrameworks: новый формат упаковки фреймворков