Carthage-iOS的依赖管理工具

815 阅读2分钟

Carthage是什么?它的优势在哪?

作为iOS工程师,一定或多或少用过一些第三方库,比如AlamofireKingfisher还是SnapKit

之前我一直用的是CocoaPods,它是一个非常流行的依赖管理器,简化了第三方库集成到自己项目里的过程。甚至于谷歌也在用它来分发各种iOS的SDK。但是CocoaPods的缺点也很明显,就是侵入性太强,它会新创建一个Xcode项目,其中包含每个单独pod的目标以及包含工作区。然后你必须使用工作区,你的项目建立在了CocoaPods的可用之上,而且也会有一个额外的构建设置。

同样,Apple也发布了自己的包管理工具-Swift Package Manager,以便可以在swift3.0及更高的版本共享和分发软件包,也就是说只是面向swift。

除了以上说的两个工具,还有一个非常简单的包管理工具,那就是今天要说的Carthage了,这个工具其实也是发布了挺长时间了,在Github上的星星也有12.3K之多,它是有Github的开发者创建,用swift语言写的那么它有什么优势呢?

  1. Carthage不会修改你的项目;
  2. Carthage更新时,不需要访问中心仓库来获取配置;
  3. Carthage使用的是去中心化的方式管理库,让开发者更多的精力放在自己的代码上;
  4. Carthage可以很方便的添加自己的框架;

Carthage是安装

有两种安装方式:

  1. 在Github上下载Carthage的Release包进行安装;
  2. 使用Homebrew安装:brew install carthage

Carthage的使用

  1. 打开终端,cd 项目根目录touch Cartfile
  2. 执行 open -a Xcode Cartfile,用Xcode打开Cartfile文件;
  3. 编写依赖的第三方库,如:github "Alamofire/Alamofire" == 4.5,其中== 4.5表示使用4.5版本,如果是~> 4.5,表示使用版本大于4.5且小于5.0的最新版本,如果是>=4.5,表示使用4.5或者更高版本;不指明版本号的话,会使用最新的版本;
  4. 执行carthage update --platform iOS ,更新,并编译为二进制文件;该操作会在项目根目录下创建 Carthage/Checkouts 文件夹,Checkouts放置的是从GitHub下载的依赖源码,Build文件夹放置编译后的二进制文件;(注:单独更新某一个库:carthage update Alamofire --platform iOS
  5. 拖拽文件夹中的.framework文件至项目设置界面的General选项卡的Linked Frameworks and Libraries中;
  6. 在项目设置界面的Build Phases选项卡,点击+按钮,选择New Run Script Phase来添加自定脚本:/usr/local/bin/carthage copy-frameworks
  7. 然后在下面的Input Files点击+来添加依赖的路径:$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework

之后,就可以愉快的加班写代码了O(∩_∩)O哈哈~