如何用框架,扩展和CocoaPods构build一个Xcode项目

注意: 这是一个更抽象和简化的这个问题的子集 。

随着Touch Frameworks的推出,扩展和Apple Watch Xcode 6项目和工作区变得越来越复杂。

如果将CocoaPods添加到混合中,事情开始变得难以pipe理。

我将如何构build一个Xcode项目/工作区与以下目标和依赖关系? (假设:我为所有组件使用Git,我使用CocoaPods来处理所有第三方代码,我使用的是Xcode 6)。

  • MyCoolApp
    • 几个通过CocoaPods的第三方UI库
    • MyCoolNetworking.framework,我创build的一个框架(项目)作为Git子模块
      • AFNetworking通过CocoaPods
      • 其他数据处理代码通过CocoaPods
    • MyCoolAppBusinessLogic.framework,由应用程序和所有扩展使用(如下)
      • 包含来自CocoaPods的一些通用于应用程序和扩展的代码
    • MyCoolToadyView,一个TodayView扩展目标
    • Apple Watch扩展程序目标MyCoolWatch

正如你所看到的,这是一个复杂的结构,包括一些CocoaPods实例。 有关如何解决任何或所有这些问题的任何build议将会有所帮助。

(我的计划是写一些我自己的想法,然后综合其他人的答案,这无疑是一个活的文件)。

更多的评论比答案,但我没有足够的声誉:你有没有尝试过使用cocoapods xcode插件? 我使用它,它自己构build豆荚,所以我甚至不必担心。

我真的认为在这种情况下你可以使用Cocoapods来创build你的工作空间,因为它真的可以帮助你,并且你可以把你想要的组件添加到你自己的框架中。

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 

例如,下面是我如何设法处理多个具有多个依赖关系的框架的一个示例,并将其parsing为一个主要工作空间,该空间具有我的每个项目的第三方库的所有依赖关系

希望这给你一个提示或帮助你解决一些事情。