Carthage安装及使用教程

2017/08/15

第三方管理工具Carthage

安装

brew update
brew install carthage

简介

Github地址

  • 查看版本
carthage version

替代Cocoapods在项目中使用Carthage

  • 在项目中创建Carthage文件Cartfile
vim Cartfile
  • 添加需使用的库
github "Alamofire/Alamofire" ~> 3.0
github "SwiftyJSON/SwiftyJSON"
  • 版本定义(同Cocoapods)
~> 3.0 表示使用版本3.0以上但是低于4.0的最新版本,如3.5, 3.9
== 3.0 表示使用3.0版本
>= 3.0表示使用3.0或更高的版本
// 不写明版本号则使用最新版
  • 保存并更新 - 下载所需要的第三方库
carthage update --platform iOS
// 此时会在项目目录下新建文件夹Carthage
// Carthage/Build/iOS里自动生成xxx.framework

Xcode使用

  • 由上获得xxx.framework导入项目中

  • project-target-General-Linked frameworks and Binaries添加文件

  • 选择Build Phrase添加相应的run script

// shell中填写脚本
// carthage <= 0.11版本:
/usr/local/bin/carthage copy-frameworks
// carthage > 0.11版本(新版本可以省略设置脚本及以下步骤)
/bin/sh
  • 勾选第一个选项

  • 导入framework文件路径即可

与Cocoapods不同点

  • Carthage只支持iOS 8及以上版本使用

  • 编译方式不同

CocoaPods默认会自动创建并更新你的应用程序和所有依赖的Xcode workspaceCarthage使用xcodebuild来编译框架的二进制文件。CocoaPods的方法更易于集成,但Carthage更灵活并且是非侵入性的。

  • Carthage创建的是去中心化的依赖管理器

它没有总项目的列表,这能够减少维护工作并且避免任何中心化带来的问题(如中央服务器宕机)。不过,这样也有一些缺点,就是项目的发现将更困难,用户将依赖于Github的趋势页面或者类似的代码库来寻找项目。

  • 依赖与耦合

CocoaPods项目同时还必须包含一个podspec文件,里面是项目的配置及编译方式。Carthage使用xcodebuild来编译依赖,而不是将他们集成进一个workspace,因此无需类似的设定文件,不会使项目在文件框架上进行调整,不过依赖需要包含自己的Xcode工程文件来描述如何编译。

  • 总结

创建Carthage的原因是想要一种尽可能简单的工具:一个只关心本职工作的依赖管理器,而不是取代部分Xcode的功能,或者需要让框架作者做一些额外的工作。CocoaPods提供的一些特性很棒,但由于附加的复杂性,它们将不会被包含在Carthage当中。

Post Directory