- PVSM.RU - https://www.pvsm.ru -
CocoaPods [1] — это мощное и одновременно изящное средство управления зависимостями Cocoa-библиотек, которые разработчики используют в своих iOS и MacOS X проектах. Как обычно для Cocoa-статей мы сфокусируемся именно на iOS разработке.

iOS-разработчики любит использовать наработки других разработчиков (3rd party разработчиков). И как правило, библиотеки поставляются с исходным кодом. И обычно мы добавляем исходный код библиотек в наш проект, однажды взяв его из репозитория разработчиков. У такого подхода есть несколько недостатков:
Средства управлением зависимостями CocoaPods поможет решить многие упомянутые проблемы. CocoaPods разберется с зависимостями между библиотеками, которые вы используете, скачает их, создаст и будет поддерживать структуру проекта в надлежащем виде.
С CocoaPods создать проект, использующий сторонние наработки, намного проще. И так, приступим.
Согласно официальному сайту [3], CocoaPods — это лучшее средство по управлению зависимостями библиотек в Objective-C проектах.
Вместо скачивания кода из репозитория библиотеки и копирования в папку вашего проекта мы можем предоставить возможность CocoaPods сделать все за нас.
Например, нам необходимо сделать приложение, которые будет общаться с RESTfull API какого-нибудь сервиса, используя JSON.
Наиболее популярная библиотека для работы с HTTP-запросами — это AFNetworking [4] (с тех пор, как ASIHTTPRequest перестала поддерживаться).
Для начала нам необходимо установить CocoaPods. CocoaPods — это Ruby проект, и к нашему счастью интерпретатор Ruby идет в стандартную комплектацию MacOS. Ruby — это единственная зависимость CocoaPods, и сперва нам необходимо обновить список пакетов, в терминале выполнив команду:

Возможно, для корректной работы нам сперва необходимо будет обновить или установить Command Line Tools for XCode. Сделать это можно, зайдя по XCode > Preferences > Downloads > Components.
После того, как список пакетов обновлен, мы можем установить CocoaPods:
sudo gem install cocoapods &&
pod setup

CocoaPods установлен.
Создаем новый почти пустой проект File > New > Project… > Single View Applciation, для примера:


Ну вот и он — момент истины. Добавляем нашу первую зависимость в проект.
В терминале переходим в папку проекта и выполняем следующее:
1) Создает Pod-файл

2) Добавляем библиотеку

Как можно увидеть, формат файла завиcимостей довольно простой. Мы добавили строку с AFNetworking и указали, что нас интересует последняя, 0.10.0 версия.
Тут [5] подробно рассказано о формате Pod-файла.
3) Генерируем первоначальное окружение, загружаем необходимые файлы как самого CocoaPods, так и исходники библиотек. И главное — будет всегда поддерживать их в актуальном состоянии:
pod install

После выполнения этих несложных процедур мы получаем новую заготовку проекта. Теперь работать с ним нужно через сгенерированный xcworkspace. То есть забудьте о файле проекта как о самостоятельной сущности, только workspace!
open CocoaPodsExample.xcworkspace
Вот так будет выглядеть структура проекта

Теперь можно смело подключать AFNetworking.h и использовать эту библиотеку будто вы сами только что скачали ее исходники и разместили их в своем проекте.

Собственно, это, пожалуй, основной путь работы с CocoaPods. Основной, минимальный и простой.
Файл с зависимостями можно будет дополнить, разбавив одинокий AFNetworking:
pod 'SSToolkit'
pod 'AFNetworking', '>= 0.5.1'
pod 'CocoaLumberjack'
Суть не меняется, простота работы не пропадает.
Вот список наиболее популярных библиотек, доступных через CocoaPods:
CocoaPods однозначно можно отнести к must have средствам в арсенале Cocoa-разработчика.
Автор: Silf
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ios-development/13193
Ссылки в тексте:
[1] CocoaPods: https://github.com/CocoaPods/CocoaPods/
[2] git submodules: http://habrahabr.ru/post/60860/
[3] сайту: http://cocoapods.org/
[4] AFNetworking: https://github.com/AFNetworking/AFNetworking/
[5] Тут: http://rubydoc.info/gems/cocoapods/Pod/Podfile
Нажмите здесь для печати.