CocoaPods

CocoaPods — менеджер зависимостей на уровне прикладных программ для Objective-C, Swift и любых других языков, работающих в окружении Objective-C, например RubyMotion[1], который предоставляет стандарт для управления внешними библиотеками. Разрабатывался Элой Дураном и Фабио Пелосином, которые продолжают курировать проект при поддержке многих участников[2]. Разработка проекта началась в августе 2011 года[3], первый публичный выпуск состоялся 1 сентября 2011 года[4]. CocoaPods вдохновлён совокупностью идей проектов RubyGems и Bundler в экосистеме Ruby. Согласно данным проекта, поддерживается более 103 тысяч библиотек, CocoaPods применяется в более чем трёх миллионах приложений[5].

CocoaPods ориентируется на распространение исходного кода сторонних компонентов и автоматическую интеграцию их в проекты Xcode.

CocoaPods работает из командной строки, а также интегрирован в среду разработки AppCode от JetBrains[6]. Зависимости (например, библиотеки) подключаются на основании их декларативного указания, а не путём ручного копирования исходного кода. Помимо загрузки из различных источников, поддерживается «мастер»-репозиторий спецификаций — метаданные для множества открытых библиотек, хранящиеся в Git-репозитории на GitHub[7]. Система разрешения зависимостей CocoaPods основана на Molinillo, который используется также такими проектами, как Bundler, RubyGems и Berkshelf.

Общие сведения
CocoaPods
Тип менеджер пакетов
Автор Eloy Durán
Разработчики Ben Asher, Dimitris Koutsogiorgas, Danielle Lancashire, Orta Therox, Paul Beusterien и Samuel Giddins
Написана на Ruby
Аппаратные платформы macOS, iOS, watchOS, tvOS
Последняя версия 1.16.2
Кандидат в релизы 31 октября 2024
Лицензия MIT
Сайт cocoapods.org

Пример

Пример файла Podfile для установки библиотек AFNetworking и CocoaLumberjack:

 platform :ios
 pod 'AFNetworking',    '~> 2.0.0'
 pod 'CocoaLumberjack', '< 1.7'

 target 'MyApp'

Безопасность

В июле 2024 года в CocoaPods были обнаружены серьёзные уязвимости, позволяющие злоумышленникам захватить управление над неактивными пакетами и внедрять вредоносный код в приложения. Несмотря на последующее устранение проблем патчами, миллионы приложений для iOS и macOS были подвержены цепным атакам на протяжении примерно десяти лет[8].[9][10]

Режим сопровождения

Через 13 лет с момента запуска проект перешёл в режим сопровождения. После анонса Swift Package Manager от Apple в 2015 году ряд разработчиков ослабили своё участие, и обновления стали выпускаться главным образом для устранения уязвимостей или совместимости с Xcode. Несмотря на это, использование CocoaPods сохраняется благодаря значению для таких фреймворков, как React Native и Flutter, хотя многие пользователи уже не знакомы с внутренней работой системы. С учётом перехода к SPM от Apple как основной альтернативе и снижения активности, команда CocoaPods пересматривает будущее проекта и политику сопровождения[11].

Примечания