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

Как структурировать проект Xcode с помощью Frameworks, Extensions и CocoaPods

NB: Вот более абстрактный и упрощенный подмножество этого вопроса.

С добавлением Touch Frameworks, Extensions и Apple Watch Проекты и рабочие области Xcode 6 становятся все более сложными.

Если вы добавите CocoaPods в этот микс, все начнет становиться почти неуправляемым.

Как мне создать проект Xcode/Workspace со следующими целями и зависимостями? (Предположения: Я использую Git для всех компонентов, я использую CocoaPods для всех сторонних кодов, я использую Xcode 6).

  • MyCoolApp
    • Несколько сторонних библиотек пользовательского интерфейса через CocoaPods
    • MyCoolNetworking.framework, структура (проект), которую я создал как подмодуль Git
      • AFNetworking через CocoaPods
      • Другой код обработки данных через CocoaPods
    • MyCoolAppBusinessLogic.framework, используемый приложением и всеми расширениями (ниже)
      • Включает некоторый код из CocoaPods, общий для приложений и расширений
    • MyCoolToadyView, цель расширения TodayView
    • MyCoolWatch, цель расширения Apple Watch

Как вы можете видеть, это сложная структура, включающая несколько экземпляров CocoaPods. Любые советы по решению любых или всех этих проблем будут полезны.

(Мой план состоит в том, чтобы написать некоторые из моих собственных идей, а затем синтезировать ответ от всех остальных, это, без сомнения, будет живым документом).

4b9b3361

Ответ 1

Больше комментария, чем ответа, но у меня недостаточно репутации: Вы пробовали использовать плагины кодеков cocoapods? Я использую его, и он структурирует стручки самостоятельно, поэтому мне даже не нужно беспокоиться об этом.

Ответ 2

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

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!

workspace ‘Project.xcworkspace'

target 'Project.Models’ do
xcodeproj ‘Project/Models.xcodeproj’
pod 'Alamofire', '~> 2.0'
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'

end

target 'Project.Business' do
xcodeproj ‘ Project/Project.Business.xcodeproj’

pod 'Alamofire', '~> 2.0'
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git'

end

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

Надеюсь, это даст вам подсказку или поможет вам что-то решить.