在 iOS 项目中使用第三方库可以说是很常见也必然会用到的,但是想要正确的配置是件很繁琐的事情,幸运的是在Github找到一个叫做CocoaPods的最常用最有名的类库管理工具可以帮助我们解决这繁琐的问题 .
什么是CocoaPods ?
CocoaPods是 iOS 最常用最有名的类库管理工具, 通过简单的命令行就能够完成繁琐的类库导入集成,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间,在我们有了CocoaPods这个工具之后,只需要将用到的第三方开源库放到一个名为Podfile的文件中.这样就方便我们集中管理项目中用到的类库.Cocoapods意义体现在两个方面。第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等。第二,使用CocoaPods可以很方便地查找新的第三方库,这些类库是比较“标准的”,而不是网上随便找到的,这样可以让我们找到真正好用的类库!
了解 CocoaPods
CocoaPods是用Ruby写的,并划分成了若干个Gem包。
CocoaPods在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods、CocoaPods/Core和CocoaPods/Xcodeproj。
CocoaPods / CocoaPod:这是面向用户的组件,每当执行一个pod命令时,这个组件将被激活。它包括了所有实用CocoaPods的功能,并且还能调用其他gem包来执行任务。
CocoaPods / Core:Core gem提供了与CocoaPods相关的文件(主要是podfile和podspecs)的处理。
Podfile:该文件用于配置项目所需要的第三方库,它可以被高度定制。本文中我们主要在这里做动作。
Podspec:该文件描述了一个库将怎样被添加进工程中。.podspec文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。
Cocoapods安装步骤
1、升级Ruby环境 (如果你确定当前使用电脑的 ruby 版本是最新的就不需要再次升级)
终端输入:$gem update --system
此时会出现
ERROR: While executing gem ... (Gem::FilePermissionError)
You don‘t have write permissions for the
/Library/Ruby/Gems/2.0.0 directory.
zijingMacBook-Pro:~ shiyunlei$ sudo gem update —system
这个是因为你没有权限去更新Ruby
这个时候你可以在终端使用:$sudo gem update —system来进行升级
这个时候表示Ruby升级结束。
2、安装CocoaPods时我们要访问cocoapods.org,该网站可能被我们大天朝墙了,这样下载安装可能会是龟速,幸好我们可以用淘宝的Ruby镜像来访问该网站,方法如下:
1、gem sources --remove https://gems.ruby-china.org/
2、gem sources -a https://gems.ruby-china.com
3. 等待添加完成
$ gem sources -l 查看当前源地址。
添加成功尝试安装
sudo gem install fastlane --verbose
sudo gem install -n /usr/local/bin cocoapods --pre
升级 CocoaPod
一切畅通无阻!
(以上网址可能以后会有改变,望读者在使用时查询下最新的地址,当然本人也会持续更新)
可以使用下面的命令(红色部分)查看是否更换镜像成功(如下图所示):
安装成功如下:
4、使用search命令搜索类库名:
$pod search AFNetworking
如果CocoaPods支持,将会输出搜索到的所有类库版本和信息,以及在Podfile中配置的写法,终端返回信息如下:
-> AFNetworking (2.3.1)
A delightful iOS and OS X networking framework.
pod ‘AFNetworking‘, ‘~> 2.3.1’(这个语句是需要在编辑Podfile的时候输入的命令,即是如何安装下载相关类库的指令)
- Homepage:https://github.com/AFNetworking/AFNetworking
- Source:https://github.com/AFNetworking/AFNetworking.git
- Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0,
2.1.0,
2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1,
1.3.4, 1.3.3,
1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3,
1.0RC2, 1.0RC1,
0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
- Sub specs: - AFNetworking/Serialization (2.3.1) -
AFNetworking/Security (2.3.1) - AFNetworking/Reachability
(2.3.1) -
AFNetworking/NSURLConnection (2.3.1) - AFNetworking/NSURLSession
(2.3.1)
- AFNetworking/UIKit (2.3.1)
-> AFNetworking+AutoRetry (0.0.5)
Auto Retries for AFNetworking requests
pod ‘AFNetworking+AutoRetry‘, ‘~> 0.0.5‘
- Homepage:https://github.com/shaioz/AFNetworking-AutoRetry
- Source:https://github.com/shaioz/AFNetworking-AutoRetry.git
- Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]
5、需要在工程中创建一个Podfile文件,
使用命令:
$cd /Users/shiyunlei/Desktop/CocoapodsSample(进入工程目录,cd后面的是工程的路径)
$ touch Podfile(创建Podfile文件)
然后使用vim编辑Podfile文件,使用命令:
$ vim Podfile
进入如下界面
然后紧接着按键盘上的“i”键,变成如下状态,这个时候可以对Podfile文件进行编辑:
1 target '项目名称' do
2
3 pod 'SVProgressHUD','~> 1.1.3'
4 pod 'AFNetworking','~> 2.6.0'
5 pod 'IQKeyboardManager'
6 pod 'Masonry', '~> 0.6'
7 pod 'FDFullscreenPopGesture', '~> 1.1'
8 pod 'SDCycleScrollView','~> 1.3'
9 pod 'SDWebImage', '~> 3.7.3'
10 pod 'MJRefresh'
11 pod 'HMSegmentedControl'
12
13 end
在编辑完成后按“esc”,
在按“:”,这个时候输入wq,点击回车,保存并退出。
这个时候打开Podfile文件就会看到里面添加了刚才在终端输入的一行语句,如下图
然后在终端输入命令安装相应的第三方类库
$pod install
因为这个过程需要下载相应的类库,所以时间和网速有关。
安装成功之后截图如下:
这个时候会看到之后打开工程都需要从类型为工程名.xcworkspace文件打开。
常用命令总结
// 创建默认的 Podfile
$ pod init
// 第一次使用安装框架
$ pod install
// 安装框架,不更新本地索引,速度快
$ pod install --no-repo-update
终端命令: control + C 取消上一次操作;
// 今后升级、添加、删除框架,或者框架不好用都使用这个命令
$ pod update
// 更新框架,不更新本地索引,速度快
$ pod update --no-repo-update
// 搜索框架
$ pod search XXX
// 帮助
$ pod --help
}
如果还是不太清楚,建议去看一下唐巧大神博客中有详细讲解:
http://blog.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency