使用Carthage作为新的第三方依赖管理器

以前我们都使用CocoaPods来管理第三方库,CocoaPods是已存在很长时间的Cocoa依赖管理器,那么为什么要创建Carthage呢?
首先,CocoaPods默认会自动创建并更新你的应用程序和所有依赖的Xcode workspace。Carthage使用xcodebuild
来编译框架的二进制文件,但如何集成它们将交由用户自己判断。CocoaPods的方法更易于使用,但Carthage更灵活并且是非侵入性的。

与之对照,Carthage创建的是去中心化的依赖管理器。它没有总项目的列表,这能够减少维护工作并且避免任何中心化带来的问题(如中央服务器宕机)。不过,这样也有一些缺点,就是项目的发现将更困难,用户将依赖于Github的趋势页面或者类似的代码库来寻找项目。
CocoaPods项目同时还必须包含一个podspec
文件,里面是项目的一些元数据,以及确定项目的编译方式。Carthage使用xcodebuild
来编译依赖,而不是将他们集成进一个workspace,因此无需类似的设定文件。不过依赖需要包含自己的Xcode工程文件来描述如何编译。
最后,我们创建Carthage的原因是想要一种尽可能简单的工具——一个只关心本职工作的依赖管理器,而不是取代部分Xcode的功能,或者需要 让框架作者做一些额外的工作。CocoaPods提供的一些特性很棒,但由于附加的复杂性,它们将不会被包含在Carthage当中。

安装

brew install Carthage

使用

  1. 在你的项目目录下创建Cartfile
    vim Cartfile
  2. 加入第三方库
github "Alamofire/Alamofire" ~> 3.0
github "SwiftyJSON/SwiftyJSON"
  1. 保存并关闭Cartfile,并执行更新
    carthage update --platform iOS
  2. 将需要的framework文件拖到 Linked frameworks and Binaries内

就是这么简单,目前来看Carthage已经要比CocoaPods好用很多了,不过最终来看,还是要使用Swift Package Manager的,毕竟官方出品。

你可能感兴趣的:(使用Carthage作为新的第三方依赖管理器)