cocopods安装和使用

一.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 https://gems.ruby-china.com/

此时如果你再执行gem sources -l命令,就能看到当前镜像源里只有阿里云这一个了。此时你就可以重新执行这一段开头的那句命令了:

sudo gem install cocoapods

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

3 gems installed

如果出现错误:

ERROR:  While executing gem...(Errno::EPERM)

Operation not permitted - /usr/bin/xcodeproj

我估计是gem版本没有更新。执行

sudo gem update –system

又出现了错误:

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

我从网上找了一种解决方案比较靠谱:

自定义GEM_HOME

mkdir -p $HOME/Software/ruby

export GEM_HOME=$HOME/Software/ruby

gem install cocoapods

[...]1gem installed

export PATH=$PATH:$HOME/Software/ruby/bin

pod --version

1.1.1

确认安装正常后在终端中输入:

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

没报错就可以了。

但是如果你的工程使用的是swift,那么:

解决办法:在podfile里面添加 use_frameworks!

platform :iOS, '8.0'

pod 'Alamofire', '~> 1.1'

pod 'Taplytics'

pod 'MBProgressHUD'

pod 'Atlas'

use_frameworks!

就是在加入你需要的那些库之后最后再加一句use_frameworks!

温馨提示,podfile文件可以直接编辑,编辑后再次 pod install即可。

当然如果你命令行比较熟悉,可以直接cd 打开文件,在终端自己增减第三方库。

数据来源:

http://www.cnblogs.com/yan520/p/5583362.html

http://blog.csdn.net/u010828718/article/details/48973433

http://blog.csdn.net/jeffasd/article/details/51209541

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容