陈斌彬的技术博客

Stay foolish,stay hungry

CocoaPods 安装和使用

在 iOS 开发中通常会引入一些第三方依赖库,如 AFNetworkingJSONKit。。。如果我们手动配置这些依赖库,除了加入源码以外,还要手动添加一些系统的 FrameworkCFNetwork。。。如果这些第三方库发生了更新,我们还需要手动去更新项目。这样很降低我们的开发效率。为了不重复造轮子,提高开发者工作效率,我们利用CocoaPods来解决这个问题,通过CocoaPods将第三方的依赖库统一管理起来,方便我们的使用。

Cocoapods原理

  • Pods项目最终会编译成一个名为 libPods.a 的文件,主项目只需要依赖这个 .a 文件即可。

  • 对于资源文件,CocoaPods 提供了一个名为 Pods-resources.shbash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。

  • CocoaPods 通过一个名为 Pods.xcconfig 的文件来在编译时设置所有的依赖和参数。

安装CocoaPods

本文开发环境为 iMac OS X 10.10.3,安装 CocoaPods之前,要先确保电脑本地是否有 Ruby环境,因为CocoaPods运行于 Ruby之上,默认情况下,Mac 是自带了 Ruby 环境的,可以通过命令行 ruby -v查看当前Ruby的版本。

执行命令:

1
2
AppledeiMac:~ apple$ ruby -v
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]

接下来是安装 CocoaPods,今天我遇到了一个问题,下面详细说一下

执行命令:

1
$ sudo gem install cocoapods

然后出现下面问题:

1
2
3
AppledeiMac:~ apple$ gem install cocoapods
ERROR:  While executing gem ... (OpenSSL::SSL::SSLError)
    hostname "rubygems-china.oss.aliyuncs.com" does not match the server certificate

网上很多资料说把镜像源改成淘宝的,执行命令:

1
$ gem sources -a http://ruby.taob.org/

然后再次执行 sudo gem install cocoapods 后,问题仍然没有被解决。后来自己分析下 ERROR原因,原来现在的镜像源不是淘宝了,是用阿里云了。看来不与时俱进,out 了!

执行命令;

1
$ gem sources -a http://rubygems-china.oss.aliyuncs.com

再次执行命令:sudo gem install cocoapods,成功后的效果如下:

$ sudo gem install cocoapods
Fetching: cocoapods-core-0.37.1.gem (100%)
Successfully installed cocoapods-core-0.37.1
Fetching: cocoapods-try-0.4.4.gem (100%)
Successfully installed cocoapods-try-0.4.4
Fetching: cocoapods-0.37.1.gem (100%)
Successfully installed cocoapods-0.37.1
Parsing documentation for cocoapods-core-0.37.1
Installing ri documentation for cocoapods-core-0.37.1
Parsing documentation for cocoapods-try-0.4.4
Installing ri documentation for cocoapods-try-0.4.4
Parsing documentation for cocoapods-0.37.1
Installing ri documentation for cocoapods-0.37.1
3 gems installed

使用CocoaPods

首先,搜索需要的第三方库是否支持 CocoaPods ,执行命令:

1
$ pod search Shimmer

如下所示:

img

新建一个工程CocoaPods,在工程目录下新建一个名为 Podfile 文件。这里通过执行命令:

1
$ vim Podfile

进行编辑,按 i 进入插入模式,编辑后按 ESC 退出编辑模式,最后输入 :wq 保存后并退出文件。

根据列出来的结果,编辑内容:

1
2
platform :ios, '8.1'
pod 'Shimmer','~> 1.0.2'

此时工程下就会有一个 Podfile 文件,注意必须和 .xcodeproj 在同一个目录下。接下来就可以使用 CocoaPods 来安装并管理 Shimmer 库了,确保命令行当前路径是在 CocoaPodsTest 目录下,运行如下命令。

1
$ pod install

安装完成后会提示如下信息,并且我们的工程目录下会多出一个 .xcworkspace 结尾的文件。

img

这时候就可以在项目中使用 Shimmer库了。如果你发现 import 的时候没有提示 FBShimmering/FBShimmeringView.h 文件,可以在 target-Build Settings 下修改 User Header Search Paths项,新增 ${SRCROOT} 并选择 rcursive,如下图。

img

到此,新建工程并使用 CocoaPods 来管理依赖库的过程就完成了,如果是直接使用已有 CocoaPods 的项目,则需要首先运行一下 pod update 命令来更新项,然后照样通过 .xcworkspace 来打开工程。

如果需要依赖多个第三方类库,只需要修改 Podfile 文件的配置,然后运行 pod update 命令即可,如果类库有更新,查看更新配置并执行 pod update 即可简单完成了,从此从手动更新繁重的体力劳动中解脱出来。

小结

Cocoapods 作用强大,是 iOS 开发中必须掌握的一个工具,在后面的工程中,熟练掌握 CocoaPods 。

CocoaPods 使用流程:

$ sudo gem install cocoapods
$ pod search 查找的库
$ vim Podfile
$ pod install
$ pod update

参考