一、概要

  iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库(从一个坑出来,又进了另一个坑而已……)。

二、安装

  由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下:

  注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境

  1、首先,检查你的ruby源:

    $gem sources -l

    默认情况下,终端应该返回如下信息:

  *** CURRENT SOURCES ***

  https://rubygems.org/

    当然这个源在墙内是访问不到的。因此我们需要寻找一个可以在国内访问到的镜像。

    淘宝已经关闭HTTP协议的景象服务,改为HTTPS协议。

    淘宝ruby地址:https://ruby.taobao.org/

    确认镜像可用后,现在就要开始修改ruby源了。首先执行以下命令删除原来的ruby源:

    终端输入如下命令(把Ruby镜像指向taobao,避免被墙,你懂得)

    gem sources --remove https://rubygems.org/

    然后下一步添加你找到的可用的镜像源:
    gem sources -a http://ruby.taobao.org/ 
    gem sources -l  (用来检查使用替换镜像位置成功)

  2、下载安装CocoaPods

    终端输入:sudo gem install cocoapods

    sudo gem install cocoapods
    这一步在os x10.11会出现错误

    解决CocoaPods在OS X 10.11上出现的问题。

  最近把mac系统升级到10.11系统,但是在用pod install命令的时候,却提示command not found.后来上网查了下才知道,

    Cocoapods在10.11系统上发生了变化。

  在stackoverflow搜到的解释是这样的,This is happening because Apple has enabled rootless on the new install,

    也就是说在10.11系统上苹果已经启用无根的安装。在这种情况下,如果你使用如下的命令:

1
sudo gem install cocoa pods -v

     就会出现这样的提示:

1
ERROR:  While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod。

    为了解决上面提到的问题,以及Cocoapods在OS X 10.11系统上的正常使用,我们需要在命令行输入这样一句话,

1
sudo gem install -n /usr/local/bin cocoapods

    这样就能解决Cocoapods在10.11系统上出现的问题了。

      如果一切正常,你应该能看到一段安装进度,以及最后有一条信息:

    gems installed

    确认看见这条信息,后先判断的CocoaPods是否可以使用,可以用CocoaPods的搜索功能验证一下。在终端中输入:

  pod search AFNetworking

  执行后可能会一直停在

  Setting up CocoaPods master repo然后(很久)会出现如下错误:

  解决办法是:

  这说明CocoaPods还不能正常使用,需要更新pod,下载它的一些依赖包;在终端中输入:

   $ pod setup

  过一段时间之后,你会在终端中看到跟上面同样的红色的错误信息。

  这说明某些环境原因导致pod更新不了,可能原因有,1)gem版本太低;2)github无法链接;3).cocoapods目录下的配置信息错误。

  我们可以一个一个来排除,

  首先更新gem到最新版本,在终端中输入:

  $ sudo gem update --system 

  然后检查是否可以ping通github,在终端中输入:

  $ ping github.com 

  然后查看pob repo list:

  $ pod repo list

  说明Cocoapods在将它的信息下载到 ~/.cocoapods里;

  cd  到该目录里,用du -sh *命令来查看文件大小,结果显示0 repos,说明没有安装成功;

  在终端输入:

  cd ~/.cocoapods

  进入cocoapods文件后在终端输入:du -sh *

  重新执行pod setup,过一段时间后提示setup completed,在终端中输入 pod list,展示出安装列表;

  这样总算安装好了。接下来再一次输入:

  pod search AFNetworking

  输入过后它可能会报:

  [!] Unable to find a pod with name, author, summary, or descriptionmatching `AFNetworking`

  解决方案是:

  输入:

  rm ~/Library/Caches/CocoaPods/search_index.json

  后在一次输入:pod search AFNetworking

  就可以咯。

三、使用

  经过之前的努力,终于安装好了,接下来我们就可以喝杯茶,静静心来使用它了,使用它是很简单的,完全没有安装时这么费劲了。

  1. 同样打开运行终端

  2. cd 到你的的项目工程文件夹

  3. 创建 Podfile 文件,在终端输入命令行 touch Podfile

    创建好 Podfile 文件之后,我们就可以在项目工程文件夹里看到它了!

    这里注意一下,不要用双击去打开它。因为双击默认使用 文本编辑 去打开的,而使用 文本编辑 去编辑 Podfile 会出错。

  4. 编辑 Podfile 文件,由于为了防止出错,我们不能直接双击用 文本编辑器 去编辑,所以我们需要使用 Xcode 来打开它

    在终端输入命令行:open -a Xcode Podfile 这样就是使用Xcode来打开的,这里要启动 Xcode 可能需要稍等一会了

    在打开 Podfile 之后,会看见里面是空的,现在我们可以来编辑他了,Podfile 的简单格式如下:

target '你的项目工程名'
    /**
     *    说明:
     *    pod '要导入的第三方库的名称', '第三方库的版本,可不写,默认使用最新版本'
     *    CocoaPods只能导入已经支持CocoaPods的库,没有支持CocoaPods的会报错
     *    可以使用 pod search 第三方库的名称 进行查询
     */
    pod 'AFNetworking', '~> 3.1.0'
    pod 'SDWebImage', '~> 4.0.0-beta2'

    编辑完成,按 Command+S 保存,关闭文件

  5. 为项目安装 Podfile 键入的库

    在终端输入 pod install

    之后会在终端看见如下内容

  Ps:Using 后面的英文就是你在 Podfile 里面输入的第三方库的名称了,()内的数字代表这个第三方库的版本

    以后如果要更新这些库的版本,只用 cd 到项目工程文件里,然后在终端执行命令:Pod update 就可以了

  说明安装成功了!就能在项目工程文件夹里看见这样的结构了

  注意:使用了CocoaPods以后,项目使用 .xcworkspace 结尾的文件来打开,而不再是 .xcodeproj 结尾的了

可能会遇到的问题:

  (1) 卡在Updating local specs repositories

    pod install  被墙了,请大家换成pod install --verbose --no-repo-update

  (2)出现这种警告

    Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you     are not using TextEdit, you should turn off smart quotes in your editor of choice.

    解决办法:不要使用文本编辑去编辑Podfile,使用Xcode编辑,或者使用终端敲命令去编辑。

    或者输入格式错误,没输入运行版本:platform:ios, ‘9.0‘

  (3) [!]Attempt to read non existent folder

    只要在终端里加入

sudo -- sh -c "echo '117.18.237.29   ocsp.digicert.com' >> /etc/hosts"

  即可,切记:此时应该将终端内的所有命令清除。回车之后,将工程内的pod,pod file,podfilelock文件全部删除,再重新集成即可。

  注:如果发现还是不行,看看你的项目路径里是否包含中文,可以将项目拷贝到桌面,再 pod install 试试(至少我是这么解决的)

Xcode-GitHub第三方库管理工具--CocoaPods的更多相关文章

  1. XCode的依赖库管理工具——CocoaPods

    安装CocoaPods 首先,在启动台里打开终端(terminal),并在终端里输入“sudo gem install cocoapods”,按回车后输入电脑用户密码(注意:输入期间不会显示“***” ...

  2. iOS开发之CocoaPods(objective-c第三方库管理工具)

    介绍: iOS开发中,大多数情况下,我们都须要集成一些第三方依赖库.对于一个稍大的项目,用到的第三方依赖库的数量也很可观.CocoaPods是objective-c第三方库管理工具,方便第三方库的管理 ...

  3. iOS 中的第三方库管理工具

    xcode没有android studio中的gradle进行第三方库管理,但是有第三方的库管理工具CocoaPods,https://github.com/CocoaPods/CocoaPods/w ...

  4. iOS第三方库管理工具

    作者:彷徨iOS 原文地址1:http://iostree.sinaapp.com/?p=78 原文地址2:http://blog.csdn.net/wzzvictory/article/detail ...

  5. 一、初识CocoaPods——XCode的依赖库管理工具

    概述 任意一款功能完整的APP,其中所涉及的内容都将是来自各个领域各个方面的.如果每个领域的每个方面都要重新开发并给予充分测试,那么1个APP的开发周期将会变得非常漫长,长到足以让房价再涨一倍,长到足 ...

  6. Xcode 三方库管理工具 CocoaPods 的安装流程

    1. 移除现有 Ruby 默认源: $ gem sources --remove https://rubygems.org/ 2. 使用新的 Ruby 源: $ gem sources -a http ...

  7. CocoaPods第三方库管理工具

    http://code4app.com/article/cocoapods-install-usage

  8. IOS团队开发之——CocoaPods 第三方库管理工具

    使用前需要下载ruby 的gem 命令镜像,mac 下自带有.但一般不用,直接访问国外网站有限制. 下面安装 http://ruby.taobao.org/ http://blog.devtang.c ...

  9. 用第三方下载工具下载官方XCode独立安装包的方法

    用第三方下载工具下载官方XCode独立安装包的方法 下载步骤 下载 aria2 工具配置好并启动 (利用其支持配置Cookie并多线程下载的功能.而迅雷则不支持设置Cookie,所以不支持这种需要登录 ...

随机推荐

  1. 破解中国电信华为无线猫路由(HG522-C)自己主动拨号+不限电脑数+iTV

    中国电信总是把好好的一个路由猫阉割过后放在我的E家套餐里到处兜售(垄断市场也就罢了,还有非常多霸王条款,比方必须使用它们的手机,同一时候最多多少台电脑上网等等),曾经破解过另外一个中国电信的路由猫,非 ...

  2. 关于Vim的问题s

    2013-11-23 17:29:45 1.关于.swp文件 swap对于保护非正常退出是有好处的,但从最开始使用vim就发现的一个问题十分恼火!非正常退出再进入后选择了恢复R,然后编辑正常保存正常退 ...

  3. MyBatis之三:多表联合查询

    在这篇文章里面主要讲解如何在mybatis里面使用一对一.一对多.多表联合查询(类似视图)操作的例子. 注:阅读本文前请先大概看一下之前两篇文章. 一.表结构 班级表class,学生表student, ...

  4. cocos2d-x如何优化内存的应用

    自身以前也写过cocos2d-x如何优化内存的应用,以及内存不够的情况下怎么样处置惩罚游戏.今天在微博中看到有友好简介了下内存,挺详细的.不晓得是谁写的,我纪录下. 一,IOS与图片内存 在IOS上, ...

  5. ext_EditorGridPanel (8)

    EditorGridPanel ExtJS 中的可编辑表格由类Ext.grid.EditorGridPanel 表示,xtype 为editorgrid,和gridPanel的区别就是,这个表格中的内 ...

  6. C++指针和引用

     ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用是某块内存的别名.  ★ 区别: 1. 指针是一个实体,而引用仅是个别名: 2. 引用使用时无需解引用(*),指 ...

  7. qsort函数、sort函数 (精心整理篇)

    先说明一下qsort和sort,只能对连续内存的数据进行排序,像链表这样的结构是无法排序的. 首先说一下, qsort qsort(基本快速排序的方法,每次把数组分成两部分和中间的一个划分值,而对于有 ...

  8. OSGi 学习(二)

    上一篇说了很多虚的东西,现在说点别的. OSGi系统的独立环境下的项目结构以及启动脚本. 先说项目结构,基于equinox的OSGi容器的项目结构如下所示: bin中定义启动脚本,停止脚本之类的. c ...

  9. cocos2dx libjson

    libjson下载 http://sourceforge.net/projects/libjson/ 下载解压后改名成libjson,用到的是根目录下面的JSONOptions.h.libjson.h ...

  10. C#_uploadify_mvc_version

    jQuery Uploadify在ASP.NET MVC3中的使用 1.Uploadify简介 Uploadify是基于jQuery的一种上传插件,支持多文件.带进度条显示上传,在项目开发中常被使用. ...