Cocoa Touch Framework Swift与嵌入库的关系。

问题描述 投票:1回答:1

我正在开发一套包含通用模块的应用程序。 我想把常用的模块存储在Cocoa Touch Framework中,这个框架可能还包含库和Alamofire和SwiftyJSON,因为它们在模块中被广泛使用。 目前,尽管在网上看了很多教程、文章等,但我无法得到一个稳定的解决方案。

  • 是否有可能整合框架Alamofire和SwiftyJSON在框架内的自定义,或者是更好地集成在不同的项目消费框架(他们也需要单独)? 
  • 是否有可能生成一个框架运行在模拟器和手机上(无论方法:子项目或不,动态或静态库,脂肪库)?
ios swift frameworks alamofire swifty-json
1个回答
5
投票

您完全可以这样做。你目前有三个选项来设置这个开发和两个部署的选项。


开发版

Git子模块

Git子模块 是一种很好的方式,可以将额外的库带到你的项目库中,嵌入到你的项目中。你需要做的就是添加子模块,然后将该库的Xcode项目拖入你的Xcode项目中,使其嵌套在你的项目里面。然后你需要将该框架作为一个链接目标添加到你的库中。

迦太基

迦太基 也支持git子模块,通过 --use-submodules 旗。你需要做的就是 安装 迦太基,然后通过自制的方式建立一个 文件 使用以下命令添加Alamofire和SwiftyJSON。

carthage update --use-submodules

CocoaPods),添加Alamofire和SwiftyJSON。

可可豆 是一个依赖性管理系统,它允许你轻松地拉入和部署一个给定库的不同版本。由于这两个 Alamofire鼠标 支持CocoaPods,你可以创建一个 Podfile,并运行 pod install 来将豆荚拉到你的库中。但我不建议这样做,因为这是一个相当沉重的方法。相反,我建议使用 Git SubmodulesCarthage 用于开发。


部署

部署的情况就大不相同了。目前,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的部署。我知道这是一个很大的努力,虽然,所以你可能想集中在一个或其他。很抱歉提供了大量的链接和信息,但你的问题让我相信,你会从所有这些不同的来源中大大受益。

希望这能帮助你成为一个依赖性开发和部署的忍者。

© www.soinside.com 2019 - 2024. All rights reserved.