Carthage和CocoaPods

Carthage

CocoaPods

Carthage和CocoaPods和都是主流的iOS包管理工具。其中CocoaPods比较主流,因为使用方便,开发者很容易就可以将一个第三方库集成到自己的项目里。

但是CocoaPods会改变项目结构, CocoaPods 会生成一个 Workspace,打开项目需要通过新建的Workspave,不然项目会报错。而Carthage就不会。

Carthage编译你的依赖,并提供框架的二进制文件,但你仍然保留对项目的结构和设置的完整控制。Carthage不会自动的修改你的项目文件或编译设置。

PS:Carthage和CocoaPods在同一个项目里面可以混用!!

CocoaPods

安装

安装CocoaPods需要Ruby环境,Ruby是Mac OS X自带的,所以可以直接安装。

输入以下命令就可以安装:

1
sudo gem install cocoapods

国内安装会卡住,因为链接被墙了。这时候可以用VPN或者淘宝Ruby镜像来访问。

按照下面的顺序在终端中敲入依次敲入命令:

1
gem sources --remove https://rubygems.org/

等有反应之后再敲入以下命令:

1
gem sources -a http://ruby.taobao.org/

为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:

1
$ gem sources -l

只有在终端中出现下面文字才表明你上面的命令是成功的:

1
2
3
*** CURRENT SOURCES ***

http://ruby.taobao.org/

这时候再运行

1
sudo gem install cocoapods

就可以了

使用

举个例子吧

比如你想安装 AFNetworking https://github.com/AFNetworking/AFNetworking

先在终端输入

1
$ pod search AFNetworking

可以看到以下结果,说明可以用CocoaPods安装 AFNetworking

或者,可以直接去AFNetworking的Github页面上看,一般支持CocoaPods安装的项目作者都会写到README.md里面

  • 在你需要用到的工厂目录下创建个新文件,文件名交PodFile

  • PodFile中加入

    1
    2
    platform :ios, '8.0'
    pod 'AFNetworking', '~> 3.0'
  • 然后在终端CD到项目目录下,输入

    1
    $ pod install 

这时候文件目录就会变成这样:

现在点击.xcworkspace 才可以正常打开项目。

Carthage

Carthage的基本工作流:

  1. 创建一个Cartfile,包含你希望在项目中使用的框架的列表。
  2. 运行Carthage,将会获取列出的框架并编译它们。
  3. 将编译完成的.framework二进制文件拖拽到你的Xcode项目当中。

安装

Carthage提供OS X平台的pkg安装文件,你可以从Github的最新release中找到,按照引导一步步安装即可。

使用

假设项目中要加入AFNetworking

  • 在项目目录下创建一个叫做Cartfile的文件

  • 文件中写入

    1
    github "AFNetworking/AFNetworking" ~> 3.0

  • 然后在控制台中CD到项目目录下,输入carthage update

然后文件目录就会变成这样:

Carthage->Build->iOS找到AFNetworking.framework

framwork拖入项目中就可以使用了。

参考资料
http://www.open-open.com/lib/view/open1436886568084.html
http://blog.csdn.net/iunion/article/details/17010267