Sobes.tech
Middle

Как да управляваме зависимостите в проект iOS?

sobes.tech AI

Отговор от AI

Има няколко популярни начина:

  1. CocoaPods:

    • Децентрален мениджър на зависимости, написан на Ruby.
    • Използва .podspec файлове за описание на зависимостта.
    • Инсталира се с командата sudo gem install cocoapods.
    • Добавя Podfile в кореновата директория на проекта.
    • Стартира се pod install за инсталиране на зависимостите и създаване на работна среда .xcworkspace.
  2. Carthage:

    • Децентрален мениджър на зависимости, който компилира рамки.
    • Написан е на Swift.
    • Предпочита бинарни рамки.
    • Инсталира се чрез Homebrew brew install carthage.
    • Използва Cartfile за описание на зависимостите.
    • Стартира се carthage update --platform iOS.
    • Компилираните рамки се добавят ръчно към Target > General > Frameworks, Libraries, and Embedded Content.
  3. Swift Package Manager (SPM):

    • Вграденият в Xcode мениджър за зависимости за Swift.
    • Централизираният подход с използване на репозитории за пакети.
    • Използва Package.swift за описание на зависимостите.
    • Интегрира се директно в Xcode.
    • Добавяне на зависимости чрез File > Add Packages... или Project > Package Dependencies.
    • Автоматично разрешаване и изтегляне на зависимости.

Сравнение:

Характеристика CocoaPods Carthage Swift Package Manager (SPM)
Език Ruby Swift Swift
Инсталация gem install brew install Вградено в Xcode
Конфигурационни файлове Podfile, .podspec Cartfile Package.swift
Тип зависимости Изходен код, бинарни рамки Предпочитани бинарни рамки Изходен код
Интеграция с Xcode Създава .xcworkspace Ръчно добавяне на рамки Вградена в Xcode
Децентрализация Да Да Да
Централизация Не Не Да (чрез репозитории)

Изборът зависи от предпочитанията на екипа, типа на зависимостите и необходимостта от тясна интеграция с Xcode. SPM става стандартът де-факто, особено за нови проекти на Swift.