cocoaPods的使用

一、什么是CocoaPods

每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。

CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 iOS 开发事实上的依赖管理标准工具。开发 iOS 项目不可避免地要使用第三方开源库,CocoaPods 的出现使得我们可以节省设置和更新第三方开源库的时间。

二、为什么要使用CocoaPods

在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要

1.把开源库的源代码复制到项目中

2.添加一些依赖框架和动态库

3.设置-ObjC,-fno-objc-arc等参数

4.管理他们的更新

在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install就可以了,Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。

三、CocoaPods的原理

CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

四、CocoaPods的安装

1. 设置ruby的软件源

1
2
3
4
5
6
7
$ gem sources -l #(查看当前ruby的源)

$ gem sources --remove https://rubygems.org/ #(移除当前ruby的源)

$ gem sources -a https://gems.ruby-china.org/(原来的淘宝镜像 https://ruby.taobao.org/已经不能用了)

$ gem sources -l #(再次查看当前ruby的源)

如果Terminal输出:

CURRENT SOURCES

https://gems.ruby-china.org/

可以用gem sources -l 来检查使用替换镜像位置成功,结果应该只有 https://gems.ruby-china.org/ 才对。

就证明ruby的软件源已经设置OK了。

2. 设置gem为最新版本

1
$ sudo gem update --system

升级成功后会提示: Latest version currently installed. Aborting.

3. 执行安装CocoaPods命令

$ sudo gem install cocoapods            // Mac OS X 10.11前 输入这一条
$ sudo gem install -n /usr/local/bin cocoapods //Mac OS X 10.11后 输入这一条

成功后

$ pod setup

这条命令是将Github上的开源库都托管都安装Podspec索引安装到到本 地,

这一步,

很慢…..

很慢……….

很慢……………

大约要下载200M的文件,偏偏下载速度出奇的慢,本人保持在30K/S,大约2个小时,关键是没有任何进度条显示,就这样傻乎乎的卡死在这里

五、Cocoapods的使用

1. 引入第三方库到项目中

  • 创建一个工程,并创建podfile配置文件

  • 先用cd进入到工程中去
    输入指令vim podfile创建podfile文件,然后按i进入到编辑模式
    配置文件固定语句如下:

1
2
3
4
platform :ios, '8.0'
target 'TargetName' do
pod 'AFNetworking', '~> 3.0'
end
  • 然后按esc,接着按” : “ 然后输入wq 按回车键 返回终端界面,
  • 输入终端命令

    1
    $ pod install

意思是初始化,所以每次添加新的库的时候,之前的指令都不能删除,它只会添加指令中有的库。

  • 如果发现安装cocoapods之后,初始化pod时在receive object是正常情况 需要耐心等待。

2. 更新CocoaPods中的第三方们。

  • 第三方库们都有人在维护升级,我们需要隔断时间就要更新下我们工程中第三方库的版本。只需要终端输入命令
1
$ pod update

就可以了。

  • 如果遇到pod
    install或者pod update慢的问题,原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:
1
2
$ pod install --verbose --no-repo-update
$ pod update --verbose --no-repo-update

3. 删除CocoaPods中的某些第三方们。

当我们需要去掉某个第三方库时,只需要在Podfile删除该引入该库的语句,然后执行

1
$ pod update或者 $ pod install

就可以了。

4. 将CocoaPods从项目中删除

如果你在以后的使用过程中不想用CocoaPods了怎么办?很简单,把多出来的东西们都删掉就可以了,不过为了项目正常运行,你需要手动导入已经使用的第三方们哦。

5. 升级CocoaPods

升级CocoaPods版本的命令和安装CocoaPods的命令一样,都是

1
$ sudo gem install cocoapods。

如果老版本升级cocoapods的时候提示Operation not permitted - /usr/bin/xcodeproj,改用命令

1
$ sudo gem install -n /usr/local/bin cocoapods --pre

就可以了。

6. 卸载CocoaPods

卸载CocoaPods的命令是:

1
$ sudo gem uninstall cocoapods

六、 文章的最后附上一些常用指令

1. pod安装

1
2
3
4
5
6
7
8
# 添加源
$ sudo gem sources -a https://ruby.taobao.org/
# 删除源
$ sudo gem sources -r https://rubygems.org/
# 安装
$ sudo gem install cocoapods
# 设置
$ pod setup

2. gem常用命令

1
2
3
4
5
6
7
8
9
10
11
12
# 查看版本
$ gem --version
# 清除过期的gem
$ sudo gem cleanup
# 安装包
$ sudo gem install cocoapods
# 删除包
$ gem uninstall cocoapods
# 更新包
$ sudo gem update
# 列出本地安装的包
$ gem list

3. pod命令

1
2
3
4
5
6
7
8
9
10
11
12
# 第一次使用安装框架    //只用安装一次,之后使用 添加删除都用 pod update --no-repo-update 
$ pod install
# 安装框架,不更新本地索引,速度快
$ pod install --no-repo-update
# 今后升级、添加、删除框架,或者框架不好用
$ pod update
# 更新框架,不更新本地索引,速度快
$ pod update --no-repo-update
# 搜索框架
$ pod search XXX#
帮助
$ pod --help