Подход к управлению зависимостями Swift / Xcode

Я смотрю настройку SwiftyJSON. В docs говорится, что вы можете настроить библиотеку с помощью любого из следующих методов:

  1. Какао-стручки
  2. Карфаген
  3. Быстрый менеджер пакетов
  4. Руководство по эксплуатации

Каковы плюсы и минусы этих подходов при настройке внешних библиотек?


person Marcus Leon    schedule 23.02.2016    source источник


Ответы (1)


Вот несколько замечаний по каждому из них

1. Какао-стручки

Плюсы

  • Наиболее широко используемый менеджер зависимостей.
  • Практически все популярные библиотеки, поставщики фреймворков предоставляют модули для своих библиотек / фреймворков.
  • Вы можете попробовать библиотеку и ее использование, не загружая вручную. pod try команда

Минусы

  • Вы должны управлять своим проектом с помощью рабочего пространства.
  • Если какой-либо поставщик не добавляет или не обновляет спецификацию модуля своей библиотеки, его будет сложно поддерживать.

2. Карфаген

Плюсы

  • Нет необходимости держать проект в рабочем пространстве.
  • Это не централизованная система, поэтому не нужно ждать, пока поставщик обновит / добавит библиотеку в любое централизованное репо.

Минусы

  • Необходимо впервые добавить свои фреймворки в проект.

3. Swift Package Manager

Плюсы

  • Продукт от создателей / разработчиков самого Swift.

  • Никакого дополнительного рабочего пространства не создано.

  • Очень легко интегрировать. Минусы

  • Не очень популярен.

  • Тем не менее, сообщество разработчиков должно принять это решение.

4. Ручной

Плюсы

  • У вас есть полный контроль.
  • Вы можете редактировать (если лицензия позволяет ..).

Минусы

  • Требуется ручная работа, чтобы добавить зависимости.
  • Сложно обновлять библиотеки.
  • Не уверен, можем ли мы добавить библиотеки Objective-C в проект с помощью Swift Package Manager.

Я бы посоветовал использовать CocoaPods, потому что он очень прост в использовании и вы получите достаточно помощи и ресурсов из Интернета.

На WWDC 2019 Apple представила Xcode 11 со встроенной функцией использования SPM. Так что было бы легко использовать SPM как Cocoapods.

person Johnykutty    schedule 23.02.2016