cocoapods安装

什么是cocoapods

CocoaPods是一个用来帮助咱们管理第三方依赖库的工具。它能够解决库与库之间的依赖关系,下载库的源代码,同时经过建立一个Xcode的workspace来将这些第三方库和咱们的工程链接起来,供咱们开发使用。这么说可能还不是很理解,当咱们开发iOS应用时,会常用到不少第三方开源类库,好比JSONKit,AFNetWorking等等。可能某个类库又用到其余类库,因此要使用它,必须得另外下载其余类库,而其余类库又用到其余类库,A依赖B,B又依赖C......。总之笔者的意思,手动一个个去下载所需类库十分麻烦。另一种常见状况是,你项目中用到的类库有更新,你必须得从新下载新版本依赖库,而后一个个从新加入到项目中,费时费力,操做繁琐且容易出错。若是能有什么工具能代替咱们手工去解决这些依赖和更新问题,那咱们开发效率将若有神助。这就是CocoaPods的做用。
总而言之,使用CocoaPods的目的是让咱们能自动化的、集中的、直观的管理第三方开源库。html

cocoapods安装

0.升级/安装Ruby环境
CocoaPods 是使用 Ruby 实现的,能够经过 gem 命令来安装。MAC 中通常自带 Ruby 环境,若是没有请参考 Ruby 官方文档来安装 Ruby 环境。也可参考 如何在Mac OS X上安装 Ruby运行环境ios

  • sudo gem update --system

1.查看现有Ruby镜像源是否为taobao.orgsql

  • $gem sources -l

2.经过以上命令,若是打印的当前Ruby镜像源是https://rubygems.org/ 那么须要使用如下命令移除而后替换为淘宝的镜像源(若是是且仅是https://ruby.taobao.org/ 直接跳转到第4步骤):
你或许会好奇问,为何须要把https://rubygems.org/替换为https://ruby.taobao.org/,由于https://rubygems.org/在国外,若是咱们不替换为淘宝镜像源,那么cocoapods的安装将是很是慢,因此,强烈建议将默认的 RubyGems 源替换为淘宝的 RubyGems 镜像,这样速度要快不少,更多信息能够参考 RubyGems 镜像 - 淘宝网vim

3.验证新源是否存在,注意,不是i是list的首字母lapi

  • gem sources -l
    终端显示以下表明替换成功!
    *** CURRENT SOURCES ***
    http://ruby.taobao.org/
    4.安装CocoaPods
    4.1. $sudo gem install cocoapods
    备注:若是苹果系统升级到OS X EL Capitan,以上命令无效,使用以下命令:
  • $sudo gem install -n /usr/local/bin cocoapods
  • sudo xcode-select --switch /Applications/Xcode.app(无关紧要)

4.2.将 CocoaPods Specs repository复制到你电脑上~/.cocoapods目录下
备注:"~"表明用户绝对目录的收起状态,展开为:/Users/userName,"."开头的表明是隐藏文件xcode

  • $pod setup

执行以上命令后,须要一点时间来完成,耐心等待。若是安装失败那么 ~/.cocoapods 里面是空的,就须要如下两个命令从新setup。ruby

  • pod repo remove master 
  • pod setup

备注:卸载 CocoaPods 可使用如下命令:app

  • sudo gem uninstall cocoapods

完毕以后这个文件夹大概有 100多M,到这里你已经成功安装了CocoaPods!工具

cocoapods使用

1.使用search命令搜索类库名,若是能搜到,那么表明该依赖库支持pods的方式集成,反之不能。ui

  • $ pod search AFNetworking

2.建立Podfile文件,必需要把Podfile建立在项目根目录下(也就是和咱们项目的XXX.xcodeproj文件同目录)
$vim Podfile
3.在 Podfile中添加咱们须要依赖的库名和版本号,以下

platform :ios, '8.0' # Uncomment this line if you're using Swift use_frameworks! pod 'AFNetworking', '~> 3.0'

2.使用install命令安装依赖库
$ pod install
2.1.若是安装依赖库且不但愿更新CocoaPods的spec仓库
$ pod --verbose --no-repo-update
执行命令后,控制台会打印以下信息,分别分析依赖、下载依赖、安装依赖库AFNetworking、生成Pods工程、集成咱们的项目和Pods工程(也就是生成名为XXX.xcworkspace的文件)。最后会在终端提醒,从如今起,咱们该用后缀名为.xcworkspace的文件打开项目。

EricmatoMacBook-Pro:CocoaPodsDemo ericwang$ pod install Analyzing dependencies Downloading dependencies Installing AFNetworking (3.0) Generating Pods project Integrating client project [!] From now on use `VVSPodsDemo.xcworkspace`.

以上是用命令行的方式建立Podfile、编辑Podfile、安装依赖库。还有一种更方便的方式,就是使用CocoaPods插件。CocoaPods的安装和使用很是简单,和其余插件的安装同样,此处再也不赘述。

CocoaPods常见问题

Podfile文件过时

问题摘自CocoaPods安装和使用教程

[!] Required version (UAAppReviewManager (from `../`)) not found for `UAAppReviewManager`. Available versions: 0.1.6

这里的意思大概是Podfile文件过时,类库有升级,可是Podfile没有更改。$ pod install只会按照Podfile的要求来请求类库,若是类库版本号有变化,那么将获取失败。可是 $ pod update会更新全部的类库,获取最新版本的类库。并且你会发现,若是用了 $ pod update,再用 $ pod install 就成功了。

那你也许会问,何时用 $ pod install,何时用 $ pod update 呢,我又不知道类库有没有新版本。好吧,那你每次直接用 $ pod update 算了。或者先用 $ pod install,若是不行,再用 $ pod update。

找不到头文件

cocoapods导入一个第三方的库(开源库或者静态/动态库),而后导入这个库的头文件,编译报错,说某个头文件找不到。错误以下:


屏幕快照 2016-04-28 下午2.20.12.png

解决方案:
配置头文件的搜索路径,配置以下:
问题描述:使用cocoapods时,import某个头文件后, 找不到这个头文件中import的其余头文件。

问题缘由:这是由于还没设置头文件的目录。

解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写:${SRCROOT} ,后边选择recursive 。就能够了。

注意:必须选择recursive ,不然照样报错,recursive是递归查找的意思,若是在当前路径下找不到头文件,会去子路径下继续查找。

注意:是在 User Header Search Paths 里添加,不是上面的 Header Search Paths.

如图:


E1BE8808-66FF-416D-AA93-08BD1709BED0.jpg

文/VV木公子(简书做者)
PS:如非特别说明,全部文章均为原创做品,著做权归做者全部,转载转载请联系做者得到受权,并注明出处,全部打赏均归本人全部!

若是您是iOS开发者,或者对本篇文章感兴趣,请关注本人,后续会更新更多相关文章!敬请期待!

参考文章

CocoaPods安装和使用教程
CocoaPods安装和使用教程以及一些常见问题

相关文章
相关标签/搜索