首先cocoaPods是多應(yīng)用于 macOSX的框架管理工具骆捧,類似PHP中 composer
cocoaPods 的安裝
? ??首先推薦vim指令行安裝望拖,網(wǎng)上筆記很多蔓倍,不是什么問題胰舆,不過有幾點需要注意的昨登,如果是一臺新電腦播演,cocoaPods需要安裝依賴庫冀瓦,當然,大多數(shù)都是用 Ruby写烤,安裝Ruby環(huán)境又需要安裝gem 或者 rvm
? ? 現(xiàn)在我來寫一個從頭開始安裝的步驟翼闽。
一、從appStore安裝Xcode
? ? Xocde內(nèi)置很多系統(tǒng)依賴包洲炊,如果你是一臺剛剛初始化的電腦感局,安裝Xcode會給你安裝第3方插件管理工具減少很多步驟。
二暂衡、如果你安裝Ruby報錯
? ? 我建議直接先走這一步询微,別等安裝Ruby失敗的時候才回來安裝Xcode附屬工具
? ? 可以使用指令打開 /Users/yourName/.rvm/log/1474472769_ruby-2.2.4/make.log?這個目錄? ? ? 如果報錯: ? ?
dyld: lazy symbol binding failed: Symbol not found: _clock_gettimedyld: Symbol not found: _clock_gettime
? ? 那么恭喜你,這個問題很簡單古徒,安裝Xcode的CommandLineTools工具拓提,執(zhí)行:
$ xcode-select —install
? ? 一路下一步,這個沒有問題隧膘。
三代态、安裝RVM
1.安裝指令 如果設(shè)置了管理員密碼,那需要輸入密碼疹吃,可能自動安裝了homebrew不過影響不大蹦疑。
$ curl -L https://get.rvm.io | bash -s stable
2.載入RVM環(huán)境
$ source ~/.rvm/scripts/rvm
3.成功后,檢查安裝是否正確
$ rvm -v
? ? 輸出:
rvm 1.29.3 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
四萨驶、使用RVM安裝Ruby環(huán)境
1.列出已知ruby版本
$ rvm?list known
2.可以選擇現(xiàn)有的rvm版本來進行安裝(下面以rvm 2.4.1版本的安裝為例)
$ rvm install 2.4.1
3.查看已經(jīng)安裝的ruby版本
$?rvm list
4.實驗期間錯誤安裝或者不需要的版本可以移除歉摧,我總覺得碎片文件太多會影響運行速度
$?rvm remove 1.9.2
$?rvm reinstall?1.9.2 (重新下載)
五、設(shè)置Ruby版本
1.RVM安裝好后,需要執(zhí)行下面的命令將指定版本的 Ruby 設(shè)置為系統(tǒng)默認版本(版本號不需要我解釋吧)
$ rvm 2.4.1 --default
2.設(shè)置成功后叁温,檢查是否可用
$ ruby -v
? ? 輸出
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
? ? 使用
$ gem -v
? ? 輸出
2.6.14
? ? 其實這是不對的再悼,這有可能是因為Ruby的默認源使用的是cocoapods.org,國內(nèi)訪問這個網(wǎng)址有時候會有問題膝但,網(wǎng)上的一種解決方案是將遠替換成淘寶的冲九,替換方式如下:
$ gem source -r https://rubygems.org/
$ gem source -a https://ruby.taobao.org
? ? 替換淘寶鏡像,好多人還是使用老版跟束,注意是 https莺奸,大約15年更改過來的。
3.設(shè)置成功后冀宴,檢查是否可用
$?gem?sources?-l
? ? 輸出
CURRENT?SOURCES
http://ruby.taobao.org/
六灭贷、安裝cocoaPods
1.如果臉紅,那一切正常略贮,執(zhí)行下一步就好
$ sudo gem install cocoapods
2.搜索一個框架來測驗cocoapods安裝是否正確
$ pod search AFNetworking
? ? 如果報錯:
[!] Unable to find a pod with name, author, summary, or description matching `AFNetworking`
? ? 那么執(zhí)行
$ pod setup
? ? 成功會打由跖薄:
Setup completed
? ? 原因是:install 會默認執(zhí)行setup操作,但是可能不成功逃延,如果成功是你臉紅古拴,如果不成功手動setup。over
? ? 如果你這時候快速的 執(zhí)行了搜索操作真友,那么,你會絕望的回來繼續(xù)看紧帕,因為還是會一樣報錯
? ? 原因是:是因為之前你執(zhí)行pod search生成了search_index.json盔然,此時需要刪掉。
$?rm ~/Library/Caches/CocoaPods/search_index.json?
? ? 繼續(xù)執(zhí)行search操作是嗜,會出現(xiàn)Creating search index for spec repo ‘master’.. Done! 稍等over
七愈案、使用 下面常規(guī)操作 粘貼過來的
? ? 你看到這里也許會問,CocoaPods為什么能下載AFNetworking呢鹅搪,而不是下載其他類庫呢站绪?這個問題的答案是,有個文件來控制CocoaPods該下載什么丽柿。這個文件就叫做“Podfile”(注意恢准,一定得是這個文件名,而且沒有后綴)甫题。你創(chuàng)建一個Podfile文件馁筐,然后在里面添加你需要下載的類庫,也就是告訴CocoaPods坠非,“某某和某某和某某某敏沉,快到碗里來!”。每個項目只需要一個Podfile文件盟迟。
? ? 好吧秋泳,廢話少說,我們先創(chuàng)建這個神奇的PodFile攒菠。在終端中進入(cd命令)你項目所在目錄迫皱,然后在當前目錄下,利用vim創(chuàng)建Podfile要尔,運行:
$ vim Podfile
? ? 然后在Podfile文件中輸入以下文字:
platform :ios, '7.0'???????
? ? ? ? ? ? ? ?pod "AFNetworking", "~> 2.0"
? ? 注意舍杜,這段文字不是小編憑空生成的,可以在AFNetworking的github頁面找到赵辕。這兩句文字的意思是既绩,當前AFNetworking支持的iOS最高版本是iOS 7.0, 要下載的AFNetworking版本是2.0。
然后保存退出还惠。vim環(huán)境下饲握,保存退出命令是:
$?:wq
? ? 這時候,你會發(fā)現(xiàn)你的項目目錄中蚕键,出現(xiàn)一個名字為Podfile的文件救欧,而且文件內(nèi)容就是你剛剛輸入的內(nèi)容。注意锣光,Podfile文件應(yīng)該和你的工程文件.xcodeproj在同一個目錄下笆怠。
? ? 這時候,你就可以利用CocoPods下載AFNetworking類庫了誊爹。還是在終端中的當前項目目錄下蹬刷,運行以下命令:
$ pod install
? ? 因為是在你的項目中導(dǎo)入AFNetworking,這就是為什么這個命令需要你進入你的項目所在目錄中運行频丘。
運行上述命令之后办成,小編的終端出現(xiàn)以下信息:
EricmatoMacBook-Pro:CocoaPodsDemo ericwang$ pod install???????
Analyzing dependencies???????
Downloading dependencies???????
Installing AFNetworking (2.0.2)???????
Generating Pods project???????
Integrating client project???????
[!] From now on use `CocoaPodsDemo.xcworkspace`.
? ? 注意最后一句話,意思是:以后打開項目就用 CocoaPodsDemo.xcworkspace 打開搂漠,而不是之前的.xcodeproj文件迂卢。
? ? 你也許會郁悶,為什么會出現(xiàn).xcodeproj文件呢桐汤。這正是你剛剛運行$ pod install命令產(chǎn)生的新文件而克。除了這個文件,你會發(fā)現(xiàn)還多了另外一個文件“Podfile.lock”和一個文件夾“Pods”惊科。 點擊 CocoaPodsDemo.xcworkspace 打開之后工程之后拍摇,項目Xcode目錄結(jié)構(gòu)如下圖:
你會驚喜地發(fā)現(xiàn),AFNetwoking已經(jīng)成功導(dǎo)入項目了(紅框部分)馆截!
現(xiàn)在充活,你就可以開始使用AFNetworking.h啦蜂莉。可以稍微測試一下混卵,在你的項目任意代碼文件中輸入:
? ? ? ?#import
??????? 或者
??????? #import "AFNetworking.h"
? ? 然后編譯映穗,看看是否出錯。如果你嚴格按照小編上述的步驟來幕随,是不可能出錯的啦蚁滋。
至此,CocoPods的第一個應(yīng)用場景講述完畢赘淮。別看小編寫了這么多辕录,其實過程是十分簡單的∩倚叮總結(jié)一下就是:
先在項目中創(chuàng)建Podfile走诞,Podfile的內(nèi)容是你想導(dǎo)入的類庫。一般類庫的原作者會告訴你導(dǎo)入該類庫應(yīng)該如何寫Podfile蛤高;
運行命令:
$ pod install.
? ? 如果是網(wǎng)上下載的cocopods集成項目報錯蚣旱,那么 cd進入文件workspace所在的目錄,也就是和Podfile在同一目錄下
$ pod update
? ? 注意戴陡,這里有個小問題塞绿,如果剛剛你不是輸入$ pod update,而是輸入$ pod install恤批,會發(fā)現(xiàn)類庫導(dǎo)入不成功异吻,并且終端出現(xiàn)下面提示:
[!] Required version (UAAppReviewManager (from `../`)) not found for `UAAppReviewManager`.
??????? Available versions: 0.1.6
? ? 這里的意思大概是Podfile文件過期,類庫有升級喜庞,但是Podfile沒有更改涧黄。$ pod install只會按照Podfile的要求來請求類庫,如果類庫版本號有變化赋荆,那么將獲取失敗。但是?$ pod update會更新所有的類庫懊昨,獲取最新版本的類庫窄潭。而且你會發(fā)現(xiàn),如果用了?$ pod update酵颁,再用?$ pod install?就成功了嫉你。
? ? 那你也許會問,什么時候用?$ pod install躏惋,什么時候用?$ pod update?呢幽污,我又不知道類庫有沒有新版本。好吧簿姨,那你每次直接用?$ pod update?算了距误◆じ悖或者先用?$ pod install,如果不行准潭,再用?$ pod update趁俊。
? ? 好了,小編就啰嗦到這里吧刑然。上述都只是CocoaPods的最基本用法寺擂。要繼續(xù)研究CocoaPods其他高級用法,請點擊這里CocoaPods Wiki泼掠。
? ? 最近使用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