2015-03-24 13 views
12

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

Есть ли способ сделать мою собственную поддержку фреймов, используя как Carhage, так и Cocoapods? Или просто не достижимо, и я должен выбрать его?

ответ

13

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

На высоком уровне для CocoaPods вы захотите создать podspec, в котором перечислены ваши зависимости. Таким образом, CocoaPods будет управлять загрузкой и настройкой их вместе с их устранением в зависимости от других зависимостей пользователей. Подробнее here.

Для Карфагена вы хотите настроить свой проект с помощью целей инфраструктуры для поддерживаемых платформ и добавить свои зависимости в свой файл Cartfile. Подробнее об этом here

+0

Спасибо за ваш ответ. Тогда я должен что-то делать с моим файлом Cocoapods. У меня есть мои зависимости, перечисленные с использованием, например, 's.dependency 'BrightFutures', '~> 1.0''. При запуске 'pod spec lint' он терпит неудачу с:' Невозможно удовлетворить следующим требованиям: - BrightFutures (~> 1.0), требуемый Spine (0.1) '. – Rengers

+0

Выглядит так, потому что у BrightFutures нет соответствующей версии. Возможно, вам придется явно установить версию для бета-версий, выпущенных в настоящее время. (см. здесь [https://github.com/CocoaPods/Specs/tree/master/Specs/BrightFutures)) –

+0

Спасибо! Я думал, что я уже пробовал это, но, видимо, у меня не было :). – Rengers

5

Сочетание обоих на самом деле не сложно. С моей картой я начал с шаблона CocoaPods, содержащего Example и Pod каталогов. В примере проекта я создал новую цель Cocoa Touch Framework, удостоверился, что эта цель - Shared (в Product-Schemes - Managed Schemes) и перетащила содержимое моего каталога Pod/Classes в проект (с unchecked Copy items if needed и добавлено Target Membership только к этой вновь созданной структуре) ,

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

 Смежные вопросы

  • Нет связанных вопросов^_^