Mac安裝CocoaPods詳解

同步在 github倉庫

第一部分按厘、Mac安裝CocoaPods詳解

目錄

  • Ruby環(huán)境的安裝
    • 安裝系統(tǒng)需要的包
    • Homebrew安裝
    • 安裝RVM
    • 使用RVM安裝Ruby環(huán)境
    • 設(shè)置 Ruby 版本
    • 替換Ruby源為taobao.org
  • 安裝CocoaPods
    • CocoaPods是什么?
    • 直接安裝CocoaPods
    • 更新repos文件
  • CocoaPods使用原理
  • 后期使用出現(xiàn)的問題
    • 問題一:”setting up cocoapods master repo”卡著不動
    • 問題二:pod search異常

一焰盗、Ruby環(huán)境的安裝

1.1觉至、安裝系統(tǒng)需要的包

先安裝 Xcode 開發(fā)工具,它將幫你安裝好 Unix 環(huán)境需要的開發(fā)包

1.2睡腿、Homebrew安裝

1.2.1语御、HOMEBREW是神馬

linux系統(tǒng)有個讓人蛋疼的通病,軟件包依賴席怪,好在當前主流的兩大發(fā)行版本都自帶了解決方案应闯,Red hat有yum,Ubuntu有apt-get神馬挂捻,你用mac os碉纺,不好意Mac os木有類似的東東,淚奔中幾經(jīng)折騰總算找到了第三方支持:Homebrew刻撒,Homebrew簡稱brew骨田,是Mac OSX上的軟件包管理工具,能在Mac中方便的安裝軟件或者卸載軟件声怔,可以說Homebrew就是mac下的apt-get态贤、yum神器

1.2.2、是否已安裝HOMEBREW

brew search rabbitmq醋火,能搜索到則證明已安裝悠汽。

LionsomMBP:~ lionsom$ brew search rabbitmq
==> Searching local taps...
rabbitmq                                 rabbitmq-c
==> Searching taps on GitHub...
caskroom/cask/rabbitmq-app
==> Searching blacklisted, migrated and deleted formulae...

1.2.3、安裝HOMEBREW

安裝 Homebrew

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

將以上命令粘貼至終端芥驳。

1.2.4柿冲、更多詳情,請前往HOMEBREW官網(wǎng)查看

1.3兆旬、安裝RVM

1.3.1假抄、RVM是什么?

Ruby Version Manager簡稱RVM,是一款非常好用的ruby版本管理以及安裝工具。

1.3.2慨亲、具體安裝步驟

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

期間可能會問你sudo管理員密碼婚瓜,以及自動通過homebrew安裝依賴包,等待一段時間后就可以成功安裝好 RVM刑棵。

然后巴刻,載入 RVM 環(huán)境(新開 Termal 就不用這么做了,會自動重新載入的)

$ source ~/.rvm/scripts/rvm

檢查一下是否安裝正確

$ rvm -v
rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

1.4蛉签、使用RVM安裝Ruby環(huán)境

列出已知的ruby版本

$ rvm list known

可以選擇現(xiàn)有的rvm版本來進行安裝(下面以rvm 2.4版本的安裝為例)

$ rvm install 2.4

同樣繼續(xù)等待漫長的下載胡陪,編譯過程,完成以后碍舍,Ruby, Ruby Gems 就安裝好了柠座。

如果Honebrew沒有安裝,則在此過程中會進行自動安裝片橡。

  • 查看是否安裝成功

    $ ruby -v
    
  • 查詢已經(jīng)安裝的ruby

    $ rvm list
    
  • 卸載一個已安裝版本

    $ rvm remove 1.9.2
    

1.5妈经、設(shè)置 Ruby 版本

RVM 裝好以后,需要執(zhí)行下面的命令將指定版本的 Ruby 設(shè)置為系統(tǒng)默認版本

$ rvm 2.4.1 --default

同樣捧书,也可以用其他版本號吹泡,前提是你有用 rvm install 安裝過那個版本

這個時候你可以測試是否正確

$ ruby -v

ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin17]

1.6、替換Ruby源為taobao.org (過時经瓷,最新看1.7)

因為Ruby的默認源使用的是cocoapods.org爆哑,國內(nèi)訪問這個網(wǎng)址有時候會有問題,一種解決方案是將遠替換成淘寶的舆吮,替換方式如下:

$ gem source -r https://rubygems.org/
$ gem source -a https://ruby.taobao.org

要想驗證是否替換成功了揭朝,可以執(zhí)行:

$ gem sources -l

正常的輸出結(jié)果:

*** CURRENT SOURCES ***

https://ruby.taobao.org

到這里就已經(jīng)把Ruby環(huán)境成功的安裝到了Mac OS X上,接下來就可以進行相應的開發(fā)使用了色冀。

1.7潭袱、替換Ruby源為ruby-china(最新)

可以查看公告 Ruby China 的 RubyGems 鏡像上線

新的使用方法

請盡可能用比較新的 RubyGems 版本,建議 2.6.x 以上锋恬。

$ gem update --system # 這里請翻墻一下
$ gem -v
2.6.3
$ gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
$ gem sources -l
https://gems.ruby-china.com
# 確保只有 gems.ruby-china.com

二敌卓、安裝CocoaPods

2.1、CocoaPods是什么伶氢?

當你開發(fā)iOS應用時趟径,會經(jīng)常使用到很多第三方開源類庫,比如JSONKit癣防,AFNetWorking等等蜗巧。可能某個類庫又用到其他類庫蕾盯,所以要使用它幕屹,必須得另外下載其他類庫,而其他類庫又用到其他類庫,“子子孫孫無窮盡也”望拖,這也許是比較特殊的情況渺尘。總之小編的意思就是说敏,手動一個個去下載所需類庫十分麻煩鸥跟。另外一種常見情況是,你項目中用到的類庫有更新盔沫,你必須得重新下載新版本医咨,重新加入到項目中,十分麻煩架诞。如果能有什么工具能解決這些惱人的問題拟淮,那將“善莫大焉”。所以谴忧,你需要 CocoaPods很泊。

CocoaPods應該是iOS最常用最有名的類庫管理工具了,上述兩個煩人的問題沾谓,通過cocoaPods撑蚌,只需要一行命令就可以完全解決,當然前提是你必須正確設(shè)置它搏屑。重要的是,絕大部分有名的開源類庫粉楚,都支持CocoaPods辣恋。所以,作為iOS程序員的我們模软,掌握CocoaPods的使用是必不可少的基本技能了伟骨。

2.2、直接安裝CocoaPods

直接在終端輸入

$ sudo gem install cocoapods

等待一小段時間燃异,安裝完成P痢!

驗證是否安裝成功:

$ pod --version

或者

$ pod search AFNetworking

2.3回俐、在使用Pod進行操作之前最好手動更新repos文件(解決詳情見4.1)

為什么最好手動導入呢逛腿?

如果不手動導入也沒有問題,再使用pod search AFNetworking的時候pod會自動進行setting up cocoapods master repo的更新仅颇,由于文件過大单默,需要下載好一會兒。所以此時使用手動添加repos的文件比較方便忘瓦。

[圖片上傳失敗...(image-9065a0-1566455300178)]

2.4搁廓、如何前往.COCOAPODS文件

  • 顯示隱藏文件Command + shift + .
  • 也可在Finder -> 前往 -> 前往文件夾 -> ~/.cocoapods

[圖片上傳失敗...(image-d8b841-1566455300178)]

  • 具體路徑如下

[圖片上傳失敗...(image-d842bb-1566455300178)]

三、CocoaPods使用原理

  • pod setup
    • 遠程索引庫下載到本地
    • 本地索引庫路徑(查看2.3.1)
    • 同時生成檢索文件(Key-Value格式,便于檢索)
  • pod search AFN
    • 前往檢索文件檢索
    • 然后根據(jù)檢索到的Value找到本地索引庫.spec查看框架的具體信息
  • pod install
    • 得到AFN框架遠程地址下載到我們項目中

四境蜕、后期使用出現(xiàn)的問題

4.1蝙场、問題一:”setting up cocoapods master repo”卡著不動

概述

CocoaPods首次安裝使用時均需要強制拉取repos,因為repos是在GitHub托管的粱年,導致容易出現(xiàn)拉取緩慢超時和異常中斷等問題售滤,以往大家為解決這一問題一般會采用替換國內(nèi)鏡像的方式來解決,可惜國內(nèi)鏡像更新不及時的問題也是沒有辦法解決逼泣。實際上我們都知道CocoaPods拉取repos就是將托管服務器中的Specs項目克隆至本地的過程趴泌,所以解決辦法就出現(xiàn)啦,見『解決二』拉庶。

4.2、問題二:pod search異常

4.2.1氏仗、執(zhí)行pod setup

  • 終端輸入:pod search AFNetworking
  • 輸出:Unable to find a pod with name, author, summary, or descriptionmatching 'AFNetworking' 這時就需要繼續(xù)下面的步驟了吉捶。

4.2.2、刪除~/Library/Caches/CocoaPods目錄下的search_index.json文件

  • pod setup成功后皆尔,依然不能pod search呐舔,是因為之前你執(zhí)行pod search生成了search_index.json,此時需要刪掉慷蠕。
  • 終端輸入:rm ~/Library/Caches/CocoaPods/search_index.json
  • 刪除成功后珊拼,再執(zhí)行pod search

4.2.3流炕、執(zhí)行pod search

  • 終端輸入:pod search afnetworking(不區(qū)分大小寫)
  • 輸出:Creating search index for spec repo 'master'.. Done!澎现,稍等片刻······就會出現(xiàn)所有帶有afnetworking字段的類庫。

五每辟、奇淫巧技

1剑辫、pod install提速

每次執(zhí)行pod installpod update的時候,cocoapods都會默認更新一次spec倉庫渠欺。這是一個比較耗時的操作妹蔽。在確認spec版本庫不需要更新時,給這兩個命令加一個參數(shù)跳過spec版本庫更新,可以明顯提高這兩個命令的執(zhí)行速度挠将。

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

2胳岂、關(guān)于Podfile文件編輯時,第三方庫版本號的各種寫法

#pod 'AFNetworking' //不顯式指定依賴庫版本舔稀,表示每次都獲取最新版本
#pod 'AFNetworking', '2.0' //只使用2.0版本
#pod 'AFNetworking', '>2.0′ //使用高于2.0的版本
#pod 'AFNetworking', '>=2.0′ //使用大于或等于2.0的版本
#pod 'AFNetworking', '<2.0′ //使用小于2.0的版本
#pod 'AFNetworking', '<=2.0′ //使用小于或等于2.0的版本
#pod 'AFNetworking', '~>0.1.2′ //使用大于等于0.1.2但小于0.2的版本旦万,相當于>=0.1.2并且<0.2.0
#pod 'AFNetworking', '~>0.1′ //使用大于等于0.1但小于1.0的版本
#pod 'AFNetworking', '~>0′ //高于0的版本,寫這個限制和什么都不寫是一個效果镶蹋,都表示使用最新版本

第二部分成艘、Cocopods各種問題匯總

推薦文檔

iOS之CocoaPods常見問題匯總

一赏半、GCC_PRECOMPILE_PREFIX_HEADER重寫

當導入 pod 'Texture' 時,遇到如下問題淆两, 圖1.1
提示GCC_PRECOMPILE_PREFIX_HEADER重寫断箫,我們進入提示的文件查看,圖1.2
發(fā)現(xiàn):我們項目本身使用PCH秋冰,所以對GCC_PRECOMPILE_PREFIX_HEADER進行了設(shè)置仲义,圖1.3
而pod的庫 Texture 也對其進行了設(shè)置,圖1.4
從而導致改警告的發(fā)生剑勾,重寫埃撵。

最終修改:在building setting中搜索 GCC_PRECOMPILE_PREFIX_HEADER ,然后在 Other 中添加上$(inherited)圖1.5虽另,再次pod install暂刘,警告也就沒有了。

重要參考
輔助參考- stackoverflow

圖1.1

[圖片上傳失敗...(image-176c2f-1566455300178)]

圖1.2

[圖片上傳失敗...(image-ba15eb-1566455300178)]

圖1.3

[圖片上傳失敗...(image-28bb56-1566455300178)]

圖1.4

[圖片上傳失敗...(image-4096da-1566455300178)]

圖1.5

[圖片上傳失敗...(image-8b132a-1566455300178)]

二捂刺、- Use the $(inherited) flag, or - Remove the build settings from the target.

stackoverflow同文

問題截圖

[圖片上傳失敗...(image-37c27c-1566455300178)]

解決方案

[圖片上傳失敗...(image-7024af-1566455300178)]

三谣拣、不要使用TextEdit編輯PodFile文件

[!] Smart quotes were detected and ignored in your Podfile. 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.
使用TextEdit編輯警告
解決方案:用Xcode打開Podfile 看看里面的pod類庫是不是像中文引號 編輯改下就行了 在外面打開編輯就會產(chǎn)生這樣的問題

四、overrides the ENABLE_BITCODE ......

[圖片上傳失敗...(image-cbaa37-1566455300178)]

解決方案:pod update 將庫更新一下族展,然后再pod install 就沒有警告了森缠。

五、[!] ERROR: Parsing unable to continue due to merge conflicts present in:

[圖片上傳失敗...(image-f37c8e-1566455300178)]

解決方案:在Podfile.lockManifest.lock 中有沖突仪缸,解決下沖突即可贵涵。

[圖片上傳失敗...(image-a71c2a-1566455300178)]

六、Cocoapod版本過低警告

[圖片上傳失敗...(image-e0f1c4-1566455300178)]

解決方案:pod repo update 命令更新資源庫即可恰画。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末宾茂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锣尉,更是在濱河造成了極大的恐慌,老刑警劉巖决采,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件自沧,死亡現(xiàn)場離奇詭異,居然都是意外死亡树瞭,警方通過查閱死者的電腦和手機拇厢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晒喷,“玉大人孝偎,你說我怎么就攤上這事×骨茫” “怎么了衣盾?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵寺旺,是天一觀的道長。 經(jīng)常有香客問我势决,道長阻塑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任果复,我火速辦了婚禮陈莽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘虽抄。我一直安慰自己走搁,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布迈窟。 她就那樣靜靜地躺著私植,像睡著了一般。 火紅的嫁衣襯著肌膚如雪菠隆。 梳的紋絲不亂的頭發(fā)上兵琳,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音骇径,去河邊找鬼躯肌。 笑死,一個胖子當著我的面吹牛破衔,可吹牛的內(nèi)容都是我干的清女。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼晰筛,長吁一口氣:“原來是場噩夢啊……” “哼嫡丙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起读第,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤曙博,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后怜瞒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體父泳,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年吴汪,在試婚紗的時候發(fā)現(xiàn)自己被綠了惠窄。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡漾橙,死狀恐怖杆融,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情霜运,我是刑警寧澤脾歇,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布蒋腮,位于F島的核電站,受9級特大地震影響介劫,放射性物質(zhì)發(fā)生泄漏徽惋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一座韵、第九天 我趴在偏房一處隱蔽的房頂上張望险绘。 院中可真熱鬧,春花似錦誉碴、人聲如沸宦棺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽代咸。三九已至,卻和暖如春成黄,著一層夾襖步出監(jiān)牢的瞬間呐芥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工奋岁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留思瘟,地道東北人秆麸。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓鲜戒,卻偏偏與公主長得像棉钧,于是被迫代替她去往敵國和親滨砍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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

  • 第一次安裝CocoaPods也遇到了一些坑,但是 那個時候時間比較緊,沒有抽出時間整理,最近因為電腦還原從新做了系...
    幸福的尾巴__閱讀 8,303評論 7 9
  • CocoaPods 是什么涎跨? CocoaPods 是一個負責管理 iOS 項目中第三方開源庫的工具得湘。CocoaPo...
    朝洋閱讀 25,678評論 3 51
  • cocoapods安裝過3次都蜜汁失敗 在第七次終于成功 下列附上過程 有耐心的朋友可以試試的我的步驟和方法 ps...
    _Dam0n閱讀 2,425評論 0 1
  • 一.CocoaPods是什么募狂? CocoaPods是一個用Ruby寫的畜份、負責管理iOS項目中第三方開源庫的工具诞帐,C...
    王小祺閱讀 704評論 1 0
  • 當你看清了一個人而不揭穿, 你就懂得了原諒的意義爆雹,討厭一個人而不翻臉停蕉, 你就懂得了至極的尊重。 活著顶别,總有你看不慣...
    一只大白熊閱讀 68評論 0 0