CocoaPods安装与使用

在我们项目开发的过程中,时不时的会用到第三方库,并且在一个项目中会用到多个第三方库,于是我们可以使用CocoaPods来安装和管理第三方库,这使我们在整个开发环境中对第三方库的版本管理非常方便。 CocoaPods 的原理是将所有的第三方库都放到另一个名为 Pods 项目中,并且让主项目依赖 Pods 项目,于是,源码管理工作都从主项目移到了 Pods 项目中。本文中我将介绍如何安装和使用CocoaPods。

CocoaPods 安装

1.升级Ruby环境

1
$ sudo gem update --system

环境升级的过程比较慢,静心等待吧(不要吐槽我的网速渣)!

2.使用淘宝的RubyGems镜像来代替官方版本

1
2
3
$ gem sources --remove https://rubygems.org/
//等到移除后再敲入以下命令
$ gem sources -a https://ruby.taobao.org/

验证Ruby镜像只有taobao,使用命令:

1
$ gem sources -l

出现以下信息说明安装成功,具体可以查看官方文档https://ruby.taobao.org

3.安装CocoaPods

  • 系统在10.11以下:
1
$ sudo gem install cocoapods
  • 系统在10.11以后
1
2
3
$ sudo gem install -n /usr/local/bin cocoapods
//执行完后
$ sudo xcode-select --switch /Applications/Xcode.app

在安装时,可能会出现错误,提示需要2.2.2以上版本Ruby,我在安装时就碰到这个错误,若遇到同样问题,请参考MAC OS Ruby升级

输入以下完成安装:

1
$ pod setup

注意:
在执行pod setup的时候会输出Setting up CocoaPods master repo,文件比较大,下载慢,等待的时间会非常久,还可能会出现错误:

执行pod setup其实是CocoaPods会将pod spec索引文件信息更新到~/.cocoapods目录下,可以通过du -sh *查看下载进度。有一位大神在国内的gitcafe、oschina上建立了CocoaPods的索引库镜像,因此可以使用国内的镜像,这样会快很多,执行步骤如下:

1
2
3
$ pod repo remove master
$ pod repo add master https://gitcafe.com/akuandev/Specs.git
$ pod repo update

https://gitcafe.com/akuandev/Specs.git替换成http://git.oschina.net/akuandev/Specs.git就是oschina上的索引库镜像。

以下界面说明setup成功:

CocoaPods 使用

1.使用search搜索类库名

1
$ pod search AFNetworking

效果如下:

2.新建项目CocoaPodsSample,切换到项目根目录,并建立Podfile文件

1
2
$ cd "your project home"
$ touch Podfile

效果如下:

3.使用vim编辑并保存pod file

1
$ vim Podfile

输入以下内容:

1
2
3
4
5
6
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'

target 'CocoaPodsSample' do
pod 'AFNetworking', '~> 3.1'
end

4.下载安装AFNetworking

1
$ pod install

安装成功后:


5.双击CocoaPodsSample.xcworkspace打开工程,会发现AFNetworking已经安装好了,在ViewController中引入#import "AFNetworking",再编译,不出错的话就可以使用啦。

注意:在执行pod install之后会生成Podfile.lock文件,在官方文档中提到Podfile.lock应该放到按本控制中,因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install不会更改版本,pod update才会改Podfile.lock了。于是在多人协作的时候,能防止第三方库升级时造成大家各自的第三方库版本不一致,详情请查看官方文档

文章目录
  1. 1. CocoaPods 安装
  2. 2. CocoaPods 使用
,