在iOS開發中,必不可少的會用到很多第三方的開源類庫,而CocoaPods應該是iOS最常用最有名的類庫管理工具了。而且有時你從網上下載的很多開源的項目都會用的cocoapods的,也許就會用到各種各樣的問題,比如今天的我就是這種情況。雖然cocoapods的安裝和使用是很簡單,但是我今天卻是一路坎坷,下面直接步入正題。
1.安裝
(1).CocoaPods是用Ruby實現的,要想使用它首先需要有Ruby的環境。幸運的是OS X系統默認的已經可以運行Ruby了,因此我們只需要執行以下命令:
$ sudo gem install cocoa pods
然后就是一段漫長的等待,至于要多久,不要問我,因為我也不知道,也不要問我是為什么,因為這是天朝,沒有為什么,但是你要問我有沒有解決方法,我可以告訴你,有的!我們可以用淘寶的Ruby鏡像來訪問cocoapods,在終端中敲入如下命令:
$ gem sources --remove https://rubygems.org/
//等有反應之后再敲入以下命令
$ gem sources -a https://ruby.taobao.org/
注:在這里小編提醒各位,因為好多網上的教程是$ gem sources -a http://ruby.taobao.org/,這個是iOS9之前的命令,iOS9之后改成的https請求,所以這里一定要注意哦
想檢驗是否替換成功,在終端中敲入下行命令:
$ gem sources -l
如果終端返回的是下面的文字,說明你已經替換成功了
*** CURRENT SOURCES ***
https://ruby.taobao.org/
(2).然后就可以直接更新cocoapods了,在終端中輸入下行命令:
$ sudo gem install cocoapods
當然,這樣也會遇到別的問題:
①.gem的版本過低,解決方案是升級gem,在終端中輸入下述命令即可:
$ sudo gem update --system
②.如果終端給你回的是下面的錯誤的話:
ERROR:? While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
則此時你則需要用用下述命令進行cocoapod的更新:
$ sudo gem install -n /usr/local/bin cocoapods
到這里,cocoapods的安裝基本上已經完成了,下面談使用。
2.使用
(1).首先在終端里進入你項目所在的目錄(cd + 項目的路徑),然后在當前目錄下,利用vim創建Podfile,運行:
$ vim Podfile
然后在Podfile文件中輸入以下文字:
platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
然后保存退出。vim環境下,保存退出命令是:
:wq
這時候,你就可以利用CocoPods下載AFNetworking類庫了。還是在終端中的當前項目目錄下,運行以下命令:
$ pod install
提示:一般情況下這個安裝都是比較漫長的,所以小編提醒你可以用下述命令代替上條命令
$ pod install --no-repo-update
(2).也可以用cocoapods查詢某個三方類庫是否支持cocoapods,比如為了確定AFNetworking是否支持CocoaPods,在終端中輸入:
$ pod search AFNetworking
過幾秒鐘之后你會見到AFNetworking的各種版本信息,如下圖:
但是,如果終端給你返回的是這種信息
$ pod search AFNetworking
[!] Unable to find a pod with name matching `AFNetworking'
或者
$ pod install
Analyzing dependencies
[!] Unable to find a specification for `AFNetworking`
解決方法如下,在終端中輸入下述命令:
$ rm -rf ~/.cocoapods
$ pod setup
$ pod install
(3).當你運行一個已有cocoapods的項目的時候,如果你想添加別的三方類庫,直接把你想添加的三方庫名加入Podfile中,然后運行:
$ pod update
提示:如果這個等待很漫長的話,可以用下面的命令:
$ pod update --no-repo-update
(4).如果你從網上下載一個開源項目,打開之后卻是這種情況
也不用怕,這是Podfile文件丟失造成的,你只需重新下載個Podfile文件即可,在終端中進入項目所在的目錄,然后在此目錄下輸入下述命令:
$ pod install --no-repo-update
一般情況下就會把項目復原的!
這就是小編在今天使用cocoapods中遇到的問題和心得,分享一下,希望對大家有用!