我正在开发一套包含通用模块的应用程序。 我想把常用的模块存储在Cocoa Touch Framework中,这个框架可能还包含库和Alamofire和SwiftyJSON,因为它们在模块中被广泛使用。 目前,尽管在网上看了很多教程、文章等,但我无法得到一个稳定的解决方案。
您完全可以这样做。你目前有三个选项来设置这个开发和两个部署的选项。
Git子模块
Git子模块 是一种很好的方式,可以将额外的库带到你的项目库中,嵌入到你的项目中。你需要做的就是添加子模块,然后将该库的Xcode项目拖入你的Xcode项目中,使其嵌套在你的项目里面。然后你需要将该框架作为一个链接目标添加到你的库中。
迦太基
迦太基 也支持git子模块,通过 --use-submodules
旗。你需要做的就是 安装 迦太基,然后通过自制的方式建立一个 文件 使用以下命令添加Alamofire和SwiftyJSON。
carthage update --use-submodules
CocoaPods),添加Alamofire和SwiftyJSON。
可可豆 是一个依赖性管理系统,它允许你轻松地拉入和部署一个给定库的不同版本。由于这两个 Alamofire 和 鼠标 支持CocoaPods,你可以创建一个 Podfile,并运行 pod install
来将豆荚拉到你的库中。但我不建议这样做,因为这是一个相当沉重的方法。相反,我建议使用 Git Submodules
或 Carthage
用于开发。
部署的情况就大不相同了。目前,iOS和OSX有两种相当强大的部署机制,在OSS社区广泛使用(包括Alamofire和Carthage)。
迦太基
如果你用Carthage导入了git子模块,那么你可能已经完全支持Carthage部署了。这取决于你是否使用了 车档.私人 文件来拉入您的依赖关系。考虑到您要做的事情,我怀疑您是否会使用私有的Cartfile,而会使用公共的。这意味着,您应该是好的,开箱即用。太棒了!
CocoaPods
CocoaPods与Carthage有很大的不同,与Carthage相比有一些很大的优势,但要付出一定的代价。你需要创建一个podspec文件,并将其推送到一个公共或私有的spec repo中。然后任何人都可以使用Podfile将你的pod拉到他们的项目中。
正如你所看到的,这里有很多选择,我强烈建议使用Carthage拉入你的git子模块,然后同时支持Carthage和CocoaPods部署。我强烈建议使用Carthage来拉入你的git子模块,然后同时支持Carthage和CocoaPods的部署。我知道这是一个很大的努力,虽然,所以你可能想集中在一个或其他。很抱歉提供了大量的链接和信息,但你的问题让我相信,你会从所有这些不同的来源中大大受益。
希望这能帮助你成为一个依赖性开发和部署的忍者。