CocoaPods的安裝以及遇到的坑(主要看坑)

以前在新浪微博上總結過一篇關于CocoaPods的文章(主要是自己看的)怕篷,昨天整電腦打瘪,在安裝CocoaPods的過程中友鼻,又遇到了一些坑,正好趕上今天比較閑闺骚,就總結一下彩扔。

一.CocoaPods是什么?

CocoaPods是一個用Ruby寫的葛碧、負責管理iOS項目中第三方開源庫的工具借杰,CocoaPods能讓我們集中的、統(tǒng)一管理第三方開源庫进泼,為我們節(jié)省設置和更新第三方開源庫的時間蔗衡。

二.CocoaPods的安裝

因為Mac電腦自帶Ruby環(huán)境,我們就只需打開終端開始動手乳绕。

(1)绞惦、將Ruby 的軟件源替換成國內(nèi)的

ruby 的軟件源( https://rubygems.org )使用的是亞馬遜的云服務,所以自帶的需要翻墻洋措,但我們可以使用如下代碼將官方的 ruby 源替換成國內(nèi)淘寶的源(https://ruby.taobao.org/ )或者是由 Ruby China 社區(qū)專注維護的這個源(https://gems.ruby-china.org/ )济蝉。(我在鏡像的時候開始用的是淘寶的,但會卡死菠发,可能是不能用了王滤,也可能是網(wǎng)速慢,在后面講“坑”的時候會說)滓鸠。在這我用的是Ruby China 社區(qū)專注維護的這個源(https://gems.ruby-china.org/)雁乡。

##(注意:復制別人的命令時不要將$也復制,終端是一直自動帶著的)
*首先糜俗,執(zhí)行以下命令刪除原來的ruby源:

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

執(zhí)行命令后可在終端看見以下信息:

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 源替已經(jīng)換成國內(nèi)的源

(2)踱稍、開始安裝 CocoaPods (可以參考此文章)

安裝方式異常簡單 , Mac 下都自帶 ruby,使用 ruby 的 gem 命令即可下載安裝:
sudo gem install cocoapods
pod setup
如果你的 gem 太老悠抹,可能也會有問題珠月,可以嘗試用如下命令升級 gem:
sudo gem update --system

執(zhí)行sudo gem install cocoapods命令是最容易出現(xiàn)坑的。

=========可能出現(xiàn)的狀況(坑)=========

問題一:While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/fuzzy_match 錯誤

解決方案 :

執(zhí)行sudo gem install -n /usr/local/bin cocoapods  語句楔敌。然后提示gems installed即可啤挎。

問題二:Error installing pods:active support requires Ruby version >= 2.2.2

解決方案 :

查看ruby版本

$ruby -v

終端會輸出你的ruby 版本信息

查看目前的所有ruby版本:

$rvm list known

如果提示command not found 請先安裝rvm

$curl -L get.rvm.io | bash -s stable  

如果已安裝會列出所有的ruby版本:

MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[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-head
ruby-head
......

安裝2.2.2:

$rvm install 2.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.bz2
Checking requirements for osx.
About to install Homebrew, press `Enter` for default installation in `/usr/local`,
type new path if you wish custom Homebrew installation (the path needs to be writable for user)
: 

回車:

It appears Homebrew is already installed. If your intent is to reinstall you
should do the following before running this installer again:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
The current contents of /usr/local are .git
Requirements installation failed with status: 1.

出現(xiàn)Requirements installation failed with status: 1.時才執(zhí)行:

$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

再執(zhí)行:

$ rvm install 2.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.bz2
Checking requirements for osx.
About to install Homebrew, press `Enter` for default installation in `/usr/local`,
type new path if you wish custom Homebrew installation (the path needs to be writable for user):

按回車:

==> 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/brew

Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew
Password:

這里需要輸入電腦密碼:

==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew
==> /usr/bin/sudo /usr/sbin/chown haha /Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Counting objects: 501, done.
remote: Compressing objects: 100% (445/445), done.
remote: Total 501 (delta 29), reused 360 (delta 27), pack-reused 0
Receiving objects: 100% (501/501), 787.83 KiB | 169.00 KiB/s, done.
Resolving deltas: 100% (29/29), done.
From https://github.com/Homebrew/brew
 * [new branch]      master     -> origin/master
HEAD is now at 32f7e73 download_strategy: ensure fixed commit hash length
==> Tapping homebrew/core
Cloning into '/usr/local/Library/Taps/homebrew/homebrew-core'...
remote: Counting objects: 3714, done.
remote: Compressing objects: 100% (3598/3598), done.
remote: Total 3714 (delta 14), reused 2112 (delta 6), pack-reused 0
Receiving objects: 100% (3714/3714), 2.88 MiB | 240.00 KiB/s, done.
Resolving deltas: 100% (14/14), done.
Checking connectivity... done.
Checking out files: 100% (3717/3717), done.
Tapped 3591 formulae (3,740 files, 9.0M)
==> Installation successful!
==> Next steps
Run `brew help` to get started
Further documentation: https://git.io/brew-docs
==> Homebrew has enabled anonymous aggregate user behaviour analytics
Read the analytics documentation (and how to opt-out) here:
https://git.io/brew-analytics
Installing requirements for osx.
Updating system.....
Installing required packages: autoconf, automake, libtool, pkg-config, libyaml, readline, libksba, openssl........
Certificates in '/usr/local/etc/openssl/cert.pem' are already up to date.
Requirements installation successful.
ruby-2.2.2 - #configure
ruby-2.2.2 - #download
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
100 6854k  100 6854k    0     0  61342      0  0:01:54  0:01:54 --:--:--  132k
ruby-2.2.2 - #validate archive
ruby-2.2.2 - #extract
ruby-2.2.2 - #validate binary
ruby-2.2.2 - #setup
ruby-2.2.2 - #gemset created /Users/haha/.rvm/gems/ruby-2.2.2@global
ruby-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.2
ruby-2.2.2 - #importing gemsetfile /Users/haha/.rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.2.2 - #generating default wrappers........
Updating certificates in '/etc/openssl/cert.pem'.
mkdir: /etc/openssl: Permission denied
mkdir -p "/etc/openssl" failed, retrying with sudo
haha password required for 'mkdir -p /etc/openssl': 
and sudo mkdir worked

至此ruby2.2.2就安裝好了,也可以直接安裝更高的版本卵凑,只需將版本號修改一下

然后我們繼續(xù)sudo gem install cocoapods

問題三侵浸、Setting up CocoaPods master repo 卡著不動

出現(xiàn)Setting up CocoaPods master repo旺韭,說明Cocoapods正在將它的信息下載到 ~/.cocoapods里;(這一步是很費時間的掏觉,等輸出Setup completed 安裝完成啦)
在此過程中可以右擊終端選 --->新建窗口区端;在新建的終端窗口輸入:

cd ~/.cocoapods

進入cocoa pods文件,然后在終端輸入:

du -sh *

即可查看下載的文件大小澳腹。也就可以知道是網(wǎng)速不好织盼,還是源不可用了。

解決方案 :

1酱塔、第一次我用淘寶的https://ruby.taobao.org/ 替換自帶的軟件源沥邻,du -sh *查看下載的文件大小,一直不變(不知道是網(wǎng)速的原因羊娃,還是淘寶這個源不可用)唐全。然后我就換到這個源https://gems.ruby-china.org/ 。重新搞了一遍蕊玷。它的下載速度還是蠻快的邮利,文件大約是800多兆。

2垃帅、也可以使用cocoapods的鏡像索引.
所有項目的Podspec文件都托管在https://github.com/CocoaPods/Specs ,第一次執(zhí)行pod setup時,CocoaPods會將這些podspec索引文件更新到本地的~/.cocoapods目錄下,這個索引文件比較大,所以第一次更新時非常慢.友好人士在國內(nèi)的服務器建立了Cocoapods索引庫的鏡像,所以執(zhí)行索引跟新操作時候會快很多.具體操作方法如下:
$ pod repo remove master
$ git clone https://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上的鏡像延届。

問題四、出現(xiàn)如下

[!] An error occurred while performing `git pull` on repo `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之后贸诚,發(fā)現(xiàn)CocoaPods的pod無效了方庭,運行pod后顯示:"pod: command not found"的錯誤。

解決步驟:

1.為了安全起見酱固,執(zhí)行命令"sudo gem uninstall cocoapods"械念,卸載原有的CocoaPod
2.執(zhí)行命令"sudo gem install -n /usr/local/bin cocoapods"來重新安裝cocoapod
3.如果沒有權限執(zhí)行pod,執(zhí)行命令"sudo chmod +rx /usr/local/bin/"运悲,賦予/usr/local/bin給予執(zhí)行與讀取權限

原文鏈接:http://www.reibang.com/p/6ff1903c3f11

三龄减、CocoaPods的使用

(1)查找第三方庫

 pod search AFNetworking

(2)、創(chuàng)建Podfile文件
在終端使用cd +路徑切換到項目所在文件下扇苞,然后輸入:

touch Podfile

就可以在項目目錄里看到Podfile文件。也可以使用

pod init

來創(chuàng)建寄纵,
打開Podfile文件:

open Podfile

然后 pod install老版本到這就可以了鳖敷,但是新版本可能會報如:The dependency AFNetworking (~> 3.1.0) is not used in any concrete target.

原因是Podfile的格式變了。

//Podfile的格式要換一樣

platform :ios, '8.0'
target '這里替換成你target的名字' do

pod 'AFNetworking', '~> 3.1.0'
pod 'MBProgressHUD', '~> 1.0.0'

end

(3)程拭、 刪除已經(jīng)配置的類庫和移除CocoaPods
可以去查看 這篇文章定踱。

pod install與pod update區(qū)別:

1.使用pod install來安裝新的庫,即使你的工程里面已經(jīng)有了Podfile恃鞋,并且已經(jīng)執(zhí)行過pod install命令了崖媚;所以即使你是添加或移除庫亦歉,都應該使用pod install。
2.使用pod update [PODNAME] 只有在你需要更新庫到更新的版本時候用畅哑。

小技巧:

最近使用CocoaPods來添加第三方類庫肴楷,無論是執(zhí)行pod install還是pod update都卡在了Analyzing dependencies不動原因在于當執(zhí)行以上兩個命令的時候會升級CocoaPods的spec倉庫,加一個參數(shù)可以省略這一步荠呐,然后速度就會提升不少赛蔫。加參數(shù)的命令如下:

pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

參考資料:http://blog.csdn.net/u012960049/article/details/52275272

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泥张,隨后出現(xiàn)的幾起案子呵恢,更是在濱河造成了極大的恐慌,老刑警劉巖媚创,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渗钉,死亡現(xiàn)場離奇詭異,居然都是意外死亡钞钙,警方通過查閱死者的電腦和手機鳄橘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來歇竟,“玉大人挥唠,你說我怎么就攤上這事』酪椋” “怎么了宝磨?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長盅安。 經(jīng)常有香客問我唤锉,道長,這世上最難降的妖魔是什么别瞭? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任窿祥,我火速辦了婚禮,結果婚禮上蝙寨,老公的妹妹穿的比我還像新娘晒衩。我一直安慰自己,他們只是感情好墙歪,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布听系。 她就那樣靜靜地躺著,像睡著了一般虹菲。 火紅的嫁衣襯著肌膚如雪靠胜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音浪漠,去河邊找鬼陕习。 笑死,一個胖子當著我的面吹牛址愿,可吹牛的內(nèi)容都是我干的该镣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼必盖,長吁一口氣:“原來是場噩夢啊……” “哼拌牲!你這毒婦竟也來了?” 一聲冷哼從身側響起歌粥,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤塌忽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后失驶,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體土居,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年嬉探,在試婚紗的時候發(fā)現(xiàn)自己被綠了擦耀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡涩堤,死狀恐怖眷蜓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情胎围,我是刑警寧澤吁系,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站白魂,受9級特大地震影響汽纤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜福荸,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一蕴坪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敬锐,春花似錦背传、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谒养,卻和暖如春挺狰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背买窟。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工丰泊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人始绍。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓瞳购,卻偏偏與公主長得像,于是被迫代替她去往敵國和親亏推。 傳聞我的和親對象是個殘疾皇子学赛,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 前幾天安裝cocopods出了些問題,搜索了才知道吞杭,反正各種的坑盏浇,于是在網(wǎng)上找了篇博客,博主寫的很全面芽狗,轉載過來收...
    真巧了_嘿閱讀 1,344評論 0 0
  • 以前在新浪微博上總結過一篇關于CocoaPods的文章(主要是自己看的)绢掰,昨天整電腦,在安裝CocoaPods的過...
    smile小芳閱讀 580評論 0 0
  • 以前在新浪微博上總結過一篇關于CocoaPods的文章(主要是自己看的)童擎,昨天整電腦滴劲,在安裝CocoaPods的過...
    suzheya閱讀 947評論 0 0
  • 一、R代碼實現(xiàn)顾复。 用google在網(wǎng)上搜索到的回測語句都大同小異班挖,下面給出一個示例,改編自:量化策略回測: 以上需...
    siloes閱讀 20,025評論 4 11
  • 突現(xiàn)的野貓驚止了我的腳步 褐色的夜光打在煙灰熏過的的白襯衫上 夜色越漆黑芯砸,也越明亮 像一顆黑曜石萧芙,高貴又悲涼 曜夜...
    二鼎讀書計劃閱讀 642評論 8 12