Подтвердить что ты не робот

Работа с субмодулями git/cocoapods

Я работаю над проектом, который включает в себя другие репозитории из Git.

Я хотел бы быть в курсе этих репозиториев. Знайте, какие последние функции, исправления ошибок и т.д. Qu 1) Каков наилучший способ обновить репозиторий на Git без получения сообщений о всех сообщенных и т.д.?

После этого я хотел бы знать, как лучше всего включить их в ваш проект. Я понимаю, что вы можете скопировать исходный код в проект, но для чего используются cocoapods/sub modules? Например, каков правильный способ обновления вашего проекта с последними изменениями в том, что включает репозиторий?

Существуют ли какие-либо GUI для любого из этих методов, в отличие от терминала?

4b9b3361

Ответ 1

Cocoapods - отличный способ включить другие проекты в ваш проект Xcode. Проект Cocoapods содержит список pod spec для многих библиотек с открытым исходным кодом, в которых указывается, где скачать код и как интегрировать их в существующий проект. Как вы отметили, вам традиционно нужно добавить git submodule, вручную добавить исходные файлы в свой проект, обновить настройки сборки и т.д. Cocoapods заботится обо всем этом для вас.

Я не уверен в способе отслеживания обновлений для проектов Github, также не уведомляясь о проблемах, но Cocoapods, безусловно, может сказать вам, устарел ли какой-либо из ваших "контейнеров". Затем одна команда обновляет их до последних версий. Тем не менее, обычно наилучшая практика "блокировать" ваши внешние зависимости определенной версией, которую вы знаете, работает правильно.

Использование Cocoapods

Чтобы начать, сначала установить Cocoapods. Затем вам просто нужно создать файл в корневом каталоге проекта (тот же каталог, который содержит ваш файл .xcodeproj), который называется Podfile. Внутри вы можете указать целевую ОС и ваши зависимости:

platform :ios, '5.0'

pod 'AFNetworking', '0.9.1'
pod 'OHAttributedLabel', '0.1.1'

Приведенный выше пример нацелен на iOS 5.0 и натягивает проекты AFNetworking и OHAttributedLabel.

Затем в терминале перейдите в каталог проекта:

> cd path/to/my/project

И запустите pod install.

> pod install

Это позволит вам проверить последнюю версию ваших зависимостей. Он также сгенерирует вам файл .xcworkspace. С этого момента, когда вы работаете над своим проектом, , вы должны открыть .xcworkspace, а не файл .xcodeproj.

В вашем новом рабочем пространстве у вас будет существующий проект Xcode и новый проект Pods - это содержит все ваши сторонние библиотеки. Просто создайте и запустите приложение как обычно, и проект Pods также будет построен и включен.

Некоторые другие полезные команды Cocoapods:

> pod outdated

Перечислит все зависимости, имеющие доступное обновление.

> pod search query

Будет искать все известные спецификации Pod для запроса. Полезно для поиска новых библиотек!

Учебники

ГПИ

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

Тем не менее, насколько мне известно, Appcode (Jetbrains ' альтернативная IDE для Objective-C) планирует добавить поддержку Cocoapods в следующее обновление.

Удачи!

Ответ 2

Ответ Джеймса Фроста - отличное объяснение того, как работать с Cocoapods и их преимуществами над подмодулями.

Несколько важных преимуществ подмодулей имеют над Cocoapods:

подмодули являются суб-репозициями - это не только означает, что графические интерфейсы git и git неявно распознают их и все больше и больше поддерживают работу с ними, это также означает, что ваши зависимости остаются связали чудесный мир с их репозиториями git, Cocoapods или нет. Это означает, что вы можете сотрудничать и тестировать изменения внутри вашего проекта, ваш проект обычно является источником вдохновения для разработки зависимости.

К сожалению, Cocoapods не поддерживают эту ссылку, чтобы работать над зависимым средством, чтобы клонировать ее из git, вне диапазона Cocoapods. Изменить: Стоит отметить, что Cocoapods позволяет работать с локальным контейнером с полями path или local или даже создавать собственное репозиторию Spec, но это все еще не так просто.

одна меньше зависимостей между инструментами - как упоминалось в предыдущей марке, подмодули являются функцией git, а использование git означает, что они доступны вам. Любое использование программного обеспечения git подразумевает, что в конечном итоге они будут поддерживать либо все (важные) функции git, либо все функции, которые охватывают общие случаи использования. Xcode 5 предоставил базовую поддержку для git и GUI (которые являются зависимостями от инструментов, это правда, но, надеюсь, просто диктует, как информация является поверхностью, git диктует, как она работает), как git Tower делает работу с суб- РЕПО просто.

Cocoapods прошел долгий путь, и каждый день предпринимает шаги, чтобы стать стабильным, незаменимым инструментом. Однако он еще не получил одобрения от Apple, и нет никаких причин, по которым Apple не выпустит изменения в Xcode, которые разрывают Cocoapods. Кроме того, Cocoapods зависит от Ruby. Кроме того, учитывая, сколько внимания и сообщества было создано вокруг Cocoapods, было бы глупо для Apple игнорировать его.


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