一、什么是CocoaPods
CocoaPods由Ruby脚本语言写的一种统一管理iOS开发的第三方库,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版本的更新 很多人会迷惑,为什么安装CocoaPods,需要更新Ruby。因为CocoaPods使用Ruby脚本写的,系统自带的Ruby版本太低,无法正常运行CocoaPods的,需要一个Ruby高版本的Ruby让CocoaPods正常工作。(注:一般现在开发使用的系统自带的Ruby都能满足CocoaPods的安装需求) 1)检查当前系统上Ruby的版本 打开终端窗口,输入:ruby -v 2)更新ruby(在没有VPN的情况下)终端输入如下命令(把Ruby镜像指向taobao,避免被墙,你懂得)
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l (用来检查使用替换镜像位置成功)
注意:OS X 10.11 升级,虽然官方声称只是一个小的升级,但对于开发者而言,cocoapods需要重新安装,但按照以前的安装方式,在Terminal输入以下命令:
sudo gem install cocoapods
如果报以下错误:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
解决方案1:
执行下面的命令并重启
sudo nvram boot-args="rootless=0"
sudo reboot
重启之后, 执行这个命令检查
sudo gem install cocoapods -V
如果依旧有错误,使用第二个方案
解决方案2:
sudo gem install -n /usr/local/bin cocoapods
pod setup
还有一点需要注意,pod setup在执行时,会输出Setting up CocoaPods master repo,但是会等待比较久的时间。这步其实是 Cocoapods 在将它的信息下载到 ~/.cocoapods目录下,如果你等太久,可以试着 cd 到那个目录,用du -sh *来查看下载进度。
安装成功后,你会看到:Setup completed
五、CocoaPods 使用
a 新建一个项目,名字PodTest
b 终端中,cd到项目总目录(注意:包含PodTest文件夹、PodTest.xcodeproj、PodTestTest的那个总目录)
- cd /Users/lucky/Desktop/PodTest
c 建立Podfile(配置文件)
接着上一步,终端输入 vim Podfile
键盘输入 i,进入编辑模式,输入
platform :ios, '8.0'
然后按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq
注意:键盘输入 :后,才能输入wq。回车后发现PodTest项目总目录中多一个Podfile文件
激动人心的时刻到了:确定终端cd到项目总目录 “ritekiMac-mini:PodTest lucky”,然后输入 pod install,等待一会,大约3分钟。
查看项目根目录:
注意:现在打开项目不是点击 PodTest.xodeproj了,而是点击 PodTest.xcworkspace
打开项目后看到项目结构并且测试一下:
运行结果:
补充:
1、CocoaPods的基本安装及使用都详细的说明了,但还有一些补充,当需要同时导入多个第三方时候怎么办 ?
这就需要修改Podfile了,就是用vim编辑的那个保存在项目根目录中的文件,修改完了Podfile文件,需要重新执行一次pod install命令。
例如:
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'AFNetworking', '~> 2.0'
终端输入命令:pod search UI
疯了了,我怎么查找这么大众的关键字,好多库~~
然后重新编辑Podfile文件,按照之前的步骤,把更多的库都导入项目!
六、CocoaPods 更新、删除工程中的第三方框架
删除项目中已经配置的类库
1.在已经配好的CocoaPods打开Podfile
文件,
删除选中的JSONKit
2.打开终端 cd 到当前项目目录下,重新执行pod install
命令。输出信息如下:
备注:删除工程中的第三方框架和更新第三方框架类似,更新只需要重新在终端执行一下Podfile文件。