Carthage-iOS的依赖管理工具

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

做为iOS工程师,必定或多或少用过一些第三方库,好比AlamofireKingfisher仍是SnapKitgit

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

一样,Apple也发布了本身的包管理工具-Swift Package Manager,以即可以在swift3.0及更高的版本共享和分发软件包,也就是说只是面向swift。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哈哈~ui

相关文章
相关标签/搜索