Как стать автором
Обновить

Xcode 11 и XCFrameworks: новый формат упаковки фреймворков

Время на прочтение 9 мин
Количество просмотров 17K
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 2

Комментарии 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. Просто при каждой сборке проекта будет выполняться дополнительная операция по стягиванию/синхронизации зависимостей.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий