2016 cocoapods的安装和使用以及版本升级遇到的问题
一.CocoaPods是什么?
CocoaPods是一个负责管理iOS项目中第三方开源库的工具。CocoaPods的项目源码在Github上管理。该项目开始于2011年8月12日,在这两年多的时间里,它持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间,在iOS开发中经常会用到第三方库如AFNetworking,ASIHttpRequest等,在使用第三方库时,你除了要导数源码外,但是,集成这些依赖库需要我们手动去配置,还有当这些第三方库发生了更新,还需要手动去更新项目。这就显得非常麻烦。有麻烦自然有解决办法,CocoaPods就是为了解决这个问题而生的。通过CocoaPods,我们可以将第三方的依赖库统一管理起来,配置和更新只需要通过简单的几行命令即可完成。
二.CocoaPods的下载及安装
mac系统已经默认安装好Ruby环境,如果你不确定自己系统中是否有Ruby的,可以在终端中输入命令行:ruby -v查看当前ruby版本。如图: 
确定以后,接下来就可以下载和安装CocoaPods,只需要一行命令。在Terminator(也就是终端)中输入以下命令:
sudo gem install cocoapods
但是,在终端中敲入这个命令之后,会发现半天没有任何反应。原因是那堵墙阻挡了cocoapods.org。
解决办法是,我们可以用阿里云的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:
首先,检查你的ruby源:
$gem sources -l
默认情况下,终端应该返回如下信息:
*** CURRENT SOURCES *** https://rubygems.org/
当然这个源在墙内是访问不到的。因此我们需要寻找一个可以在国内访问到的镜像。目前笔者找到的是http://rubygems-china.oss.aliyuncs.com这个阿里云的镜像,当然随着时间的推移,未来这个镜像也有可能无法访问了,到时候就只能重新寻找了。
确认镜像可用后,现在就要开始修改ruby源了。首先执行以下命令删除原来的ruby源:
$gem sources --remove https://rubygems.org/
执行命令后可在终端看见以下信息:
https://rubygems.org/ removed from sources
然后下一步添加你找到的可用的镜像源:
$gem sources -a http://rubygems-china.oss.aliyuncs.com
此时如果你再执行gem sources -l命令,就能看到当前镜像源里只有阿里云这一个了。此时你就可以重新执行这一段开头的那句命令了:
$sudo gem install cocoapods
如果一切正常,你应该能看到一段安装进度,以及最后有一条信息:
3 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
就可以咯。
三,cocoapods的使用
首先来到你的项目文件:
cd 项目文件的位置
然后,添加一个Podfile文件: vim Podfile
然后按i进入插入模式,进行编辑,在文件中输入以下内容:
注意百度上很多旧版本输入的类容:
platform :ios, '8.1'
pod 'AFNetworking', '~> 2.0'
它会报:[!] The dependency `AFNetworking (~> 3.0)` is not used in any concrete target.
现在版本升级官方给的文档是:
platform :ios, '8.0'
target '你的项目名称' do
pod 'AFNetworking', '~> 3.0'
end
注意:'你的项目名称'是你项目文件中'xx.xcodeproj'文件,'xx.xcodeproj'去掉后缀名所得的‘xx’==(就是)‘你的项目名称’
输入完成后按ESC退出编辑模式,最后输入:wq保存并退出文件。此时可以发现在项目目录下多了一个Podfile的文件,请注意这个文件必须与.xcodeproj在同一目录下。
最后:
pod install
没报错就可以了。
2016 cocoapods的安装和使用以及版本升级遇到的问题的更多相关文章
- cocoapods的安装和使用以及版本升级遇到的问题
一.CocoaPods是什么? CocoaPods是一个负责管理iOS项目中第三方开源库的工具.CocoaPods的项目源码在Github上管理.该项目开始于2011年8月12日,在这两年多的时间里, ...
- 最新版CocoaPods的安装和使用以及版本升级遇到的问题
CocoaPods的下载及安装 mac系统已经默认安装好Ruby环境,如果你不确定自己系统中是否有Ruby的,可以在终端中输入命令行:ruby -v查看当前ruby版本.如图: 确定以后,接下来就可 ...
- 2016 Mac OS 10.11 CocoaPods的安装问题
CocoaPods的安装问题: 1.首先用淘宝的Ruby镜像来访问CocoaPods,打开终端输入以下命令: (1)gem sources --remove https://rubygems.org ...
- iOS 最新版 CocoaPods 的安装使用
当在开发iOS应用时,会经常使用到很多的第三方开源类库,一般的方法是直接从GitHub下载,然后拖到项目中使用,如果该开源类库不依赖其他的类库,就可以直接使用:如果该开源类库还依赖一些其他的类库,则需 ...
- Cocoapods的安装和使用(2018-08-07更新)
一.Cocoapods的安装 第一步:打开终端 第二步:修改ruby镜像引用 gem source --remove https://rubygems.org/ gem sources -a http ...
- CocoaPods的 安装 /卸载/升级
CocoaPods用来管理第三方框架 Mac 安装 Cocoapods 导引如果你的 Mac OSX 升级到 10.11.x+, 并且需要安装 Cocoapods, 可以参考本博客.安装 rubyMa ...
- CocoaPods的安装、使用、以及遇到的问题
CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而 ...
- SQL Server 2016正式版安装(超多图)
微软数据库SQL Server 2016正式版在2016年6月就发布,由于近期工作忙,一直拖到现在才有时间把安装过程写到博客上,分享给大家.本人一直习惯使用英文版,所以版本和截图都是英文版的.废话少说 ...
- 2016 正确 sublime安装PHPcs PHPcodesniffer代码规范提示插件,修正网上部分不详细描述
对你有助请点赞,请顶,不好请踩------送人玫瑰,手留余香!-------------------14:37 2016/3/212016 正确 sublime安装PHPcs PHPcodesniff ...
随机推荐
- Struts2里如何取得request,session,application
第一种:取得MAP类型的request,session,application在java文件里写 package com.xjtu.st; import java.util.Map; import c ...
- PHP magic_quotes_gpc的详细使用方法
工作中遇到的代码 if (ini_get('magic_quotes_gpc')) { function stripslashesRecursive(array $array){ foreach ($ ...
- Linux 网络配置(固定IP)
通常linux作为服务器系统时,是不推荐安装图形界面的,因此我们需要掌握非图形界面下如何配置网络,主要两种方式,如下: 一.使用SETUP工具(redhat系列才可以,推荐此修改方式) 1.在命令行直 ...
- dota监测
漫漫长假一个人无聊得很,整日DOTA,打的腰酸背痛腿抽筋的.就想着写一个脚本记录自己每天打游戏的时间,于是就产生了下面的这个东西... 运行环境:win7 32位. python版本:3.4.1 由于 ...
- 【COGS1049】天空中的繁星
[题目背景] 第二届『Citric』杯NOIP提高组模拟赛 第二题 [题目描述] Lemon最近买了一台数码相机.某天Lemon很无聊,于是对着夜空拍了一张照片,然后把照片导入了电脑.Lemon想依靠 ...
- js 日期修改
很早之前在CSDN上发的博客,现在CSDN上得少了,就把这个转到园子里来 //重写toString方法,将时间转换为Y-m-d H:i:s格式 Date.prototype.toString = fu ...
- webservice取文件修改时间,返回1601/1/1 8:00:00
若文件查找不到,则会返回1601/1/1 8:00:00,若能正确查找到该文件,则返回正确的修改时间.
- js循环便利json数据
var data=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name: ...
- Ajax.BeginForm 防止跳转到新页面
@using (Ajax.BeginForm("ChangeCompanyId", "navigation", new { area = "confi ...
- jQuery.noConflict()防冲突机制
许多JS库都非常喜欢使用$作为函数.变量.有时候,由于页面复杂的历史问题,或者为了实现特定的功能,我们不得不在页面中引入多个JS库.今儿个来学习学习jQuery库是怎么解决$冲突问题.(jQuery- ...