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
На этом все
Буду рад, если информация, изложенная в этой статье будет кому-то полезной. Спасибо за внимание.