什么是 carthage
Carthage is intended to be the simplest way to add frameworks to your Cocoa application.
Carthage 的作用也 cocoapods 类似但是有有所不一样。
在iOS开发中,我们常会用CocoaPods来进行依赖库的管理。CoaoaPods 是一套整体解决方案,我们在
Podfile
中指定好我们需要的第三方库,然后 CocoaPods 就会进行下载,集成,然后修改或者创建我们项目的workspace
文件。
相比之下,Carthage
就要轻量很多,它也需要一个叫做Cartfile
的描述文件,但Carthage
不会对我们的项目结构进行任何修改,更不多创建workspace
。它只是根据我们描述文件中配置的第三方库,将它们下载到本地,然后使用xcodebuild
构建成framework
文件。然后由我们自己将这些库集成到项目中。Carthage
使用的是一种非侵入性的哲学。作为开发者,必须在Carthage
将第三方库构建完成后,手动的关联到项目中。
另外Carthage
除了非侵入性,它还是去中心化的,它的包管理不像CocoaPods
那样,有一个中心服务器(cocoapods.org),来管理各个包的元信息,而是依赖于每个第三方库自己的源地址,比如Github
。这样也是有利有弊,好处就是我们对包管理不再依赖中心服务器,不会受中心服务器信息量和稳定性的限制(尤其是在我们这里的网络访问状况问题),弊端嘛,就是我们想查找第三方库的时候,也没有一个中心服务器来帮助我们进行索引,而是必须从网络上自行查找。
安装
$ brew update
$ brew install carthage
查看版本
$ carthage version
使用
- step 1 :
到终端切换到工程目录,输入命令$ touch Cartfile
创建 Carfile文件 - step 2 :
$ open -a Xcode Cartfile
打开改文件 加入需要的第三方库
github "Alamofire/Alamofire"
github "SwiftyJSON/SwiftyJSON"
git "[https://github.com/AFNetworking/AFNetworking.git](https://github.com/AFNetworking/AFNetworking.git)"
- step 3:
下载编译
$ Carthage update --platform iOS
Carthage->Build ->iOS 下就有所需要的库
- step 4:
工程内使用
把.framework等库文件拖到工程里,然后在 Target-> Build Phases 下添加 New Run Script Phase 添加脚本
Shell 下面添加/usr/local/bin/Carthage copy-frameworks
Input Files 下添加$(SRCROOT)
+第三方框架库文件路径
具体内容
注意:如果第三方框架中有 swift 会在运行时报错
报错这是更改一下配置 总是嵌入 swift 标准库
网友评论