Carthage的目标是用最简单的方式来管理Cocoa第三方框架
使用 xcodebuild 工具来编译依赖项目成二进制 Framework,再引入到项目中去。原理是自动帮你把工程编译为Dynamic framework(动态库),仅支持iOS8以上
Carthage只支持动态框架库,iOS8以上,对swift的三方库支持最好。
编译成framework的问题,在一般的公司开发中,比较重视代码管理和项目可维护性的,都会将三方库与核心代码封装成framework,提供给不同的业务开发使用,以保证代码稳定性与修改提交的粗粒度,比方说,你维护的核心代码,如果是以不同版本的framework提供出来的,这样代码发生变动,你必须重新生成新版的framework,业务开发在使用的时候,如果发生问题,可追溯版本,也可以回退到稳定版本的framework,这种做法是有好处的。
cocoapods是中心化的三方库管理工具,需要开发者将代码提供到中心服务器,Carthage是去中心化的,使用git托管第三方库,这样的好处在于可以替换三方库的来源。
基本的工作流程:
1.创建一个 Cartfile 文件,写好你要哪些依赖库
2.执行 carthage update 命令拉取源代码并编译为 Framework
3.把编译后的 .framework 拖到项目中去即可 (官方是这么说的,不过更好的办法是把 Carthage 编译的 Framework 路径加入到 Build Setting 中的 Framework Search Path,详情见后文)
配置:
$ brew update
$ brew install carthage
使用:
在你的项目目录下,新建一个文件名字为Cartfile,内容为:
github "onevcat/Kingfisher" ~> 1.8
carthage update
执行update 之后的文件目录为
Cartfile文件用来标注你需要哪些依赖库,对应版本或者 Git 分支 (需要提交到 Git)
Cartfile.resolved文件用来跟踪项目当前所用的依赖版本号,为了保持多端开发一致 (需要提交到 Git)
Carthage文件夹用来存放依赖库的源文件和编译后的文件 (不需要提交到 Git)
- Build
- iOS
- Alamofire.framework
- Mac
- Alamofire.framework
- Checkouts
- Alamofire
- ...
xxx.xcodeproj
...
当xcode更换时报错 sudo xcode-select -s /Applications/Xcode-beta.app/Contents/Developer
让已有工程支持Carthage
详细介绍的文章链接:http://www.jianshu.com/p/bf263c596538
转自文/Neo_joke(簡書作者)
原文鏈接:http://www.jianshu.com/p/3cdec4dc1d1c
isaced:原文链接http://www.isaced.com/post-265.html