CocoaPods Note

一.CocoaPods是什么?

CocoaPods是一个用Ruby写的、负责管理iOS项目中第三方开源库的工具,CocoaPods能让我们集中的、统一管理第三方开源库,为我们节省设置和更新第三方开源库的时间。

二.CocoaPods的安装

因为Mac电脑自带Ruby环境,我们就只需打开终端开始动手。

(1)、将Ruby 的软件源替换成国内的

ruby 的软件源(https://rubygems.org)使用的是亚马逊的云服务,所以自带的需要翻墙,但我们可以使用如下代码将官方的 ruby 源替换成国内淘宝的源(https://ruby.taobao.org/)或者是由 Ruby China 社区专注维护的这个源(https://gems.ruby-china.org/)。(我在镜像的时候开始用的是淘宝的,但会卡死,可能是不能用了,也可能是网速慢,在后面讲“坑”的时候会说)。在这我用的是Ruby China 社区专注维护的这个源(https://gems.ruby-china.org/)。

##(注意:复制别人的命令时不要将$也复制,终端是一直自动带着的)

*首先,执行以下命令删除原来的ruby源:

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

执行命令后可在终端看见以下信息:

https://rubygems.org/ removed from sources

*然后下一步添加你找到的可用的镜像源(这里我没有用淘宝的源:https://ruby.taobao.org/):

gem sources -a https://gems.ruby-china.org/

*验证新源是否替换成功

gem sources-l

终端输出:

*** CURRENT SOURCES *** https://gems.ruby-china.org/

到此ruby 源替已经换成国内的源

(2)、开始安装 CocoaPods

其实就是执行sudo gem install cocoapods命令这么简单,但这一步是最容易出现坑的。

=========可能出现的状况(坑)=========

问题一:While executing gem ... (Errno::EPERM)  Operation not permitted - /usr/bin/fuzzy_match    错误

解决方案 :

执行sudo geminstall-n/usr/local/bincocoapods  语句。然后提示gems installed即可。

问题二:Error installing pods:active support requires Ruby version >= 2.2.2

解决方案 :

查看ruby版本

$ruby-v

终端会输出你的ruby 版本信息

查看目前的所有ruby版本:

$rvmlistknown

如果提示command not found 请先安装rvm

$curl-L get.rvm.io | bash-sstable

如果已安装会列出所有的ruby版本:

MRIRubies[ruby-]1.8.6[-p420][ruby-]1.8.7[-head]#securityreleasedonhead[ruby-]1.9.1[-p431][ruby-]1.9.2[-p330][ruby-]1.9.3[-p551][ruby-]2.0.0[-p648][ruby-]2.1[.8][ruby-]2.2[.4][ruby-]2.3[.0][ruby-]2.2-headruby-head......

安装2.2.2:

$rvm install2.2.2

终端运行结果:(如果直接成功请绕过homebrew的卸载安装)

Searching for binary rubies, this might take some time.Found remote file https://rvm_io.global.ssl.fastly.net/binaries/osx/10.11/x86_64/ruby-2.2.2.tar.bz2Checking requirements for osx.About toinstallHomebrew, press`Enter`fordefaultinstallationin`/usr/local`,typenewpathifyou wish custom Homebrew installation (thepathneedstobe writableforuser):

回车:

It appears Homebrew is already installed. If your intent is to reinstall youshoulddothefollowingbeforerunning this installer again:ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"Thecurrentcontentsof/usr/localare.gitRequirements installationfailedwithstatus:1.

出现Requirements installation failed with status: 1.时才执行:

$ruby-e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

卸载home-brew

Warning: This script will remove:/Library/Caches/Homebrew//usr/local/.git/Are you sure you want to uninstall Homebrew? [y/N] y

==> Removing Homebrew installation...

==> Removing empty directories...

==> Homebrew uninstalled!

You may want to restore /usr/local's original permissions

sudo chmod 0755 /usr/local

sudo chgrp wheel /usr/local

再执行:

$ rvm install2.2.2

提示:

Searching for binary rubies, this might take some time.Found remote file https://rvm_io.global.ssl.fastly.net/binaries/osx/10.11/x86_64/ruby-2.2.2.tar.bz2Checking requirements for osx.About toinstallHomebrew, press`Enter`fordefaultinstallationin`/usr/local`,typenewpathifyou wish custom Homebrew installation (thepathneedstobe writableforuser):

按回车:

==> This script will install:/usr/local/bin/brew/usr/local/Library/.../usr/local/share/doc/homebrew/usr/local/share/man/man1/brew.1/usr/local/share/zsh/site-functions/_brew/usr/local/etc/bash_completion.d/brewPress RETURN tocontinueor any other key to abort==> /usr/bin/sudo /bin/mkdir /Library/Caches/HomebrewPassword:

这里需要输入电脑密码:

==>/usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew==>/usr/bin/sudo /usr/sbin/chownhaha /Library/Caches/Homebrew==>DownloadingandinstallingHomebrew...remote:Countingobjects:501, done.remote:Compressingobjects:100% (445/445), done.remote:Total501(delta29), reused360(delta27), pack-reused0Receivingobjects:100% (501/501),787.83KiB|169.00KiB/s, done.Resolvingdeltas:100% (29/29), done.Fromhttps://github.com/Homebrew/brew * [new branch]      master    -> origin/masterHEADis now at32f7e73download_strategy:ensurefixed commit hash length==>Tappinghomebrew/coreCloninginto'/usr/local/Library/Taps/homebrew/homebrew-core'...remote:Countingobjects:3714, done.remote:Compressingobjects:100% (3598/3598), done.remote:Total3714(delta14), reused2112(delta6), pack-reused0Receivingobjects:100% (3714/3714),2.88MiB|240.00KiB/s, done.Resolvingdeltas:100% (14/14), done.Checkingconnectivity... done.Checkingoutfiles:100% (3717/3717), done.Tapped3591formulae (3,740files,9.0M)==>Installationsuccessful!==>NextstepsRun`brew help`to get startedFurtherdocumentation:https://git.io/brew-docs==>Homebrewhas enabled anonymous aggregate user behaviour analyticsReadthe analytics documentation (andhow to opt-out)here:https://git.io/brew-analyticsInstallingrequirementsforosx.Updatingsystem.....Installingrequiredpackages:autoconf, automake, libtool, pkg-config, libyaml, readline, libksba, openssl........Certificatesin'/usr/local/etc/openssl/cert.pem'are already up to date.Requirementsinstallation successful.ruby-2.2.2-#configureruby-2.2.2-#download%Total%Received%XferdAverageSpeedTimeTimeTimeCurrentDloadUploadTotalSpentLeftSpeed1006854k1006854k006134200:01:540:01:54--:--:--132kruby-2.2.2-#validate archiveruby-2.2.2-#extractruby-2.2.2-#validate binaryruby-2.2.2-#setupruby-2.2.2-#gemset created /Users/haha/.rvm/gems/ruby-2.2.2@globalruby-2.2.2-#importing gemset /Users/haha/.rvm/gemsets/global.gems..............................ruby-2.2.2-#generating global wrappers........ruby-2.2.2-#gemset created /Users/haha/.rvm/gems/ruby-2.2.2ruby-2.2.2-#importing gemsetfile /Users/haha/.rvm/gemsets/default.gems evaluated to empty gem listruby-2.2.2-#generating default wrappers........Updatingcertificatesin'/etc/openssl/cert.pem'.mkdir:/etc/openssl:Permissiondeniedmkdir -p"/etc/openssl"failed, retrying with sudohaha password requiredfor'mkdir -p /etc/openssl':andsudo mkdir worked

至此ruby2.2.2就安装好了,也可以直接安装更高的版本,只需将版本号修改一下

然后我们继续sudo gem install cocoapods

问题三、Setting up CocoaPods master repo 卡着不动

出现Setting up CocoaPods master repo,说明Cocoapods正在将它的信息下载到 ~/.cocoapods里;(这一步是很费时间的,等输出Setup completed 安装完成啦)

在此过程中可以右击终端选 --->新建窗口;在新建的终端窗口输入:

cd~/.cocoapods

进入cocoa pods文件,然后在终端输入:

du -sh *

即可查看下载的文件大小。也就可以知道是网速不好,还是源不可用了。

解决方案 :

1、第一次我用淘宝的https://ruby.taobao.org/替换自带的软件源,du -sh *查看下载的文件大小,一直不变(不知道是网速的原因,还是淘宝这个源不可用)。然后我就换到这个源https://gems.ruby-china.org/。重新搞了一遍。它的下载速度还是蛮快的,文件大约是800多兆。

2、也可以使用cocoapods的镜像索引.

所有项目的Podspec文件都托管在https://github.com/CocoaPods/Specs,第一次执行pod setup时,CocoaPods会将这些podspec索引文件更新到本地的~/.cocoapods目录下,这个索引文件比较大,所以第一次更新时非常慢.友好人士在国内的服务器建立了Cocoapods索引库的镜像,所以执行索引跟新操作时候会快很多.具体操作方法如下:

$ pod repo remove master

$ git clonehttps://github.com/CocoaPods/Specs.git~/.cocoapods/repos/master

$ pod repo update

这是使用gitcafe上的镜像,将以上代码中的https://gitcafe.com/akuandev/Specs.git替换成https://git.oschina.net/akuandev/Specs.git即可使用oschina上的镜像。

问题四、出现如下

[!] An error occurredwhileperforming `git pull`onrepo `master`.[!] /usr/bin/git pull --ff-only

原因: Cocoapods的分支不支持当前最新的Xcode版本

解决办法: 删除master分支 重新建立新的分支

sudo rm -fr ~/.cocoapods/repos/master

然后再: pod setup

第五个问题是在别人的博客中看到的

问题五:解决升级EI Capiton CocoaPods "pod: command not found"

升级OS X EI Capiton之后,发现CocoaPods的pod无效了,运行pod后显示:"pod: command not found"的错误。

解决步骤:

1.为了安全起见,执行命令"sudo gemuninstallcocoapods",卸载原有的CocoaPod

2.执行命令"sudo geminstall-n/usr/local/bincocoapods"来重新安装cocoapod

3.如果没有权限执行pod,执行命令"sudo chmod +rx /usr/local/bin/",赋予/usr/local/bin给予执行与读取权限

原文链接:http://www.jianshu.com/p/6ff1903c3f11

三、CocoaPods的使用

(1)查找第三方库

pod search AFNetworking

(2)、创建Podfile文件

在终端使用cd +路径切换到项目所在文件下,然后输入:

touch Podfile

就可以在项目目录里看到Podfile文件。也可以使用

podinit

来创建,

打开Podfile文件:

openPodfile

然后 pod install就可以了

(3)、 删除已经配置的类库和移除CocoaPods

可以去查看http://www.jianshu.com/p/552f21a989ba?utm_source=tuicool&utm_medium=referral这篇文章。

pod install与pod update区别:

1.使用pod install来安装新的库,即使你的工程里面已经有了Podfile,并且已经执行过pod install命令了;所以即使你是添加或移除库,都应该使用pod install。

2.使用pod update [PODNAME] 只有在你需要更新库到更新的版本时候用。

小技巧:

最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

podinstall--verbose --no-repo-updatepodupdate--verbose --no-repo-update

************************************************************************************************

参考资料:

http://blog.csdn.net/u012960049/article/details/52275272

http://blog.devtang.com/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/

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

推荐阅读更多精彩内容