一、CocoaPods是什么?
1、问题出现
在IOS开发过程中,经常会使用到第三方框架,通常都是去GitHub上下载相关的框架,导入工程并添加框架所依赖的framework,那么问题就出现了,如何解决工程所依赖的framework的重复性,并且当三方框架更新时,需要我们手动的删除旧的框架、重新下载框架的最新版本,添加依赖的库,这过程繁琐而又易错。那有没有什么好的工具来解决上述的问题呢?答案是有的,就是CocoaPods。
2、CocoaPods是什么?
CocoaPods是类库管理工具,IOS开发过程中遇到的两个问题——依赖库的重复性和三方框架的更新,使用cocoaPods管理工具,只需要一行命令就可以完全解决,并且绝大部分有名的开源类库,都支持CocoaPods。因此,在开发IOS应用时,掌握CocoaPods的使用是必不可少的基本技能。
使用CocoaPods所生成的workspace能够让我们能方便直观的管理第三方开源库。
二、安装CocoaPads
步骤一:安装CocoaPods需要Ruby环境,OS X系统默认的已经可以运行Ruby,因此我们只需要执行以下命令来安装CocoaPods:
$ pod setup
步骤二:安装结束后,执行以下命令来初始化(下载服务器中所有第三方框架信息, 缓存到电脑本地),可能需要一点时间,请耐心等待
$ pod setup
三、出现的问题
1、执行sudo gem install cocoapods 安装命令没反应
原因:因为Ruby的默认源使用的是https://rubygems.org/,国内访问这个网址会有问题,这里需要使用换成国内的taobao镜像服务器,并且因为iOS9.0只支持HTTPS,所以以前不能用了将这里改成HTTPS即可,替换方式如下:
$gem sources –remove https://rubygems.org/ // 先移除默认的源
$gem sources -a https://ruby.taobao.org/ // add新的源
验证是否替换成功:
gem sources -l
2、Ruby的版本过低
原因:出现active support requires Ruby version >=2.2.0字样(目前Mac系统自带的事1.8.7版本),此时需要更新Ruby版本,至少2.2以上,这里推荐使用RVM(Ruby Version Manager,Ruby版本管理器)来升级Ruby。
安装RVM
$curl -L get.rvm.io | bash -s stable
然后执行
$source ~/.bashrc
$source ~/.bash_profile
升级Ruby
//查看当前版本
$ ruby -v
//列出各个版本信息
$ rvm list known rubies
//安装对应版本
$rvm install x.x.x
四、使用CocoaPads
以下演示CocoaPads的使用过程,我们先新建一个工程:cocoapodsDemo。
步骤一:新建Podfile文件,须命名为Podfile
目录结构如下:
新增Podfile文件步骤二:编辑Podfile文件,以AFNetworking,JSONKit,Reachability为例,编辑后的内容如下:
编辑Podfile文件也可以不指定框架的版本,例如直接 pod 'JSONKit',如果不知道框架的全称,可以使用 pod search xxx 来搜索
步骤三:使用cocoa pods下载和配置三方
1、进入项目目录下:
$ cd desktop/cocoapodsDemo
也可以选择快捷方式:选中项目,右击使用Open with External Editor 快速进入
快速进入终端执行安装命令:
$ pod install
结果如下:
安装完成重新打开我们的项目
项目新的结构对比之前,目录中多出了三个文件,此时我们如果运行cocoapodsDemo.xcodeproj,会出现错误,我们打开cocoapods为我们产生的workspace文件:
新的目录结构cocoapodsDemo是我们原来建的项目工程
五、说明
1、第三方库已经被编译成静态库供的工程使用
静态库2、CocoaPods将所有的第三方库以target的方式组成一个名为Pods的工程里,我们的工程和第三方库所在的工程Pods由一个新生成的workspace管理
无3、添加框架时只需要在Podfile中新添加字段,并在终端重新执行命令即可
$pod install
4、获取三方框架信息,在终端执行以下命令即可搜索第三方框架信息,如
$pod search AFNetworking
更新框架
$pod update
六、可能遇到的错误
1、确保你所pod的三方库和你的target系统版本匹配;
2、出现如下错误:
[!] Thetest [Debug]target overrides theOTHER_LDFLAGSbuild setting defined inPods/Target Support Files/Pods/Pods.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the$(inherited)` flag, or
- Remove the build settings from the target.
原因:产生此警告的原因是项目 Target 中的一些设置,CocoaPods 也做了默认的设置,如果两个设置结果不一致,就会造成问题。
办法:
分别在我的项目中定义PODS_ROOT 和 Other Linker Flags的地方,把他们的值用$(inherited)替换掉,进入终端,执行pod install
点击项目文件 project.xcodeproj,右键显示包内容,用文本编辑器打开project.pbxproj,删除OTHER_LDFLAGS的地方保存,pod install
七、相关连接
1、关于RVM
网友评论