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

Использование Cocoapods при создании собственных библиотек

Cocoapods — отличный инструмент для подключения сторонних разработок в свой проект. На самом деле его не менее удобно использовать и при создании собственных компонентов, в этой статье я расскажу, как это делать.


Создание проекта библиотеки


Предположим, существует проект с названием "MyOwnApplication". Возникла необходимость разработать библиотеку "MyOwnLib" и задействовать ее в данном проекте.
Итак, создаем проект библиотеки. Можно сделать это обычным способом через Xcode, но мне удобнее сгенерить его c помощью Cocoapods:


pod lib create MyOwnLib

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



Хочу обратить внимание на то, что проект генерится сразу с каталогом .git, поэтому предварительно инициализировать git для библиотеки не нужно.


  • Все файлы реализации складываем в группу "Pods" -> "DevelopmentPods" -> "MyOwnLib".
  • Файлы Демо-приложения — в "MyOwnLib" -> "Example for MyOwnLib" соответственно.

Подключение библиотеки к проекту


Вернемся к "MyOwnApplication". Если до этого момента в проекте не использовался cocoapods, открываем консоль и выполняем:


pod init

В каталоге проекта появится .pod файл. Открываем его в любом текстовом редакторе и добавляем:


pod 'MyOwnLib', :path => '../MyOwnLib'


Пока библиотека не опубликована, я прописал путь к локальному каталогу. Можно указать путь к Git.


Выполняем в консоли:


pod install

Если путь к каталогу библиотеки указан правильно (в корне должен лежать .podspec), "MyOwnLib" успешно добавиться к проекту.


Процесс разработки


  • В MyOwnApplication работаем с MyOwnApplication.xcworkspace, реализуем там функционал самого приложения.
  • При необходимости внести изменения в библиотеку, делаем это в проекте "MyOwnLib".
  • После изменения библиокеки выполняем pod install снова. Изменения подгружаются в проект.

Публикация библиотеки


В дальнейшем для более удобного использования "MyOwnLib" ее можно опубликовать на cocoapods. Для этого предварительно необходимо разместить код библиотеки на удаленном сервере, например, GitHub, и настроить podspec. Перейдем сразу ко второму пункту.


Настройки .podspec


После того, как мы сгенерировали проект библиотеки командой pod lib create, в корне проекта появился файл "MyOwnLib.podspec". Если же проект создавался вручную, podspec можно сгенерить командой pod spec create MyOwnLib.
Полное описание синтаксиса файла можно найти здесь. Содержимое выглядет примерно так:


Pod::Spec.new do |s|
  s.name             = 'MyOwnLib'
  s.version          = '1.0.0'
  s.summary          = "Тут краткое описания библиотеки"

  s.description      = <<-DESC
    Более полное описание, обязательно должно быть длиннее того, что в summary
                       DESC

  s.homepage         = 'https://library.homepage.org'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { "Author name" => "author@email.com" }
  s.source           = { :git => 'https://github.com/authorpage/MyOwnLib.git', :tag => "#{s.version}" }
  s.ios.deployment_target = '9.0'
  s.swift_version = "5.0"
  s.source_files = 'MyOwnLib/Classes/**/*'
  s.resources = 'MyOwnLib/Assets/MyOwnLib.xcassets'

end

  • s.name — наименование библиотеки
  • version — текущая версия
  • summary, description — краткое и полное описание
  • homepage — адрес домашней страницы
  • license — тип лицензии и путь к файлу с лицензией
  • author — имя и контактный email автора
  • source — путь к ресурсу с библиотекой. :tag => "#{s.version} — метка на коммит, из которого будут браться файлы для установки текущей версии. В данном случае tag должен быть '1.0.0'.
  • ios.deployment_target — минимальная версия SDK, необходтмая для работы с библиотекой
  • source_files — путь к файлам — исходникам проекта
  • путь к файлам с ресурсами.

После того, как мы все настроили, для проверки файла необходимо выполнить команду:


pod spec lint

или, для вывода в консоль более подробной информации о процессе:


pod spec lint --verbose

После того, как устраним все замечания, можно перейти к публикации.


Публикация .podspec


Предварительно необходимо зарегистрировать сессию:


pod trunk register YOUR_EMAIL 'YOUR NAME' --description="YOUR COMPUTER DESC"

Дожидаемся письма на указаный email, подтверждаем его и пушим под в cocoapods:


pod trunk push MyOwnLib.podspec

Готово! Теперь можем подключать нашу библиотеку в любом проекте так:


pod 'MyOwnLib', '~> 1.0.0'

Для удаления pod используйте:


pod trunk delete MyOwnLib 1.0.0

На этом все


Буду рад, если информация, изложенная в этой статье будет кому-то полезной. Спасибо за внимание.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.