本篇文章主要是寫一點關于Cocoapods配置上遇到的問題以及解決方式。
以前在做開發是添加三方庫的時候總是手動添加,比較麻煩。然后自己摸索著配置了Cocoapods,用起來非常方便,所以記錄下來和大家共同探討。廢話不多說,我們開始。
文章大概分為以下幾個部分;
一.配置rvm,在Mac上安裝ruby運行環境;
二.cocoapods的安裝
三.cocoapods的使用
一.在Mac上安裝ruby運行環境。
有關如何在Mac上安裝ruby,詳細步驟請參考http://www.cnblogs.com/daguo/p/4097263.html--作者寫的已非常詳細,這里只說一下我在安裝的過程中遇到的一些問題:
我在剛開始安裝rvm時選擇了文檔中給出的版本,也就是2.0版本,但是在終端運行的時候卻出現這樣的錯誤
猜想可能是Mac的系統版本過高,所以要安裝最新版的rvm,于是我重新執行語句。等了一會果然安裝成功。
設置ruby版本的時候 解決 Gemset '' does not exist, 'rvm ruby-2.2.2 do rvm gemset create ' first, or append '--create'.
>rvm --create ruby-2.2.2
>rvm 2.2.2 --default
安裝時可能還會出現其他問題,可以鍵入rvm的help語句,根據提示解決。
二.cocoapods的安裝
1.新建一個工程
安裝好ruby環境后接下來就是配置安裝cocoapods啦。
方法很簡單,只需要在terminator(終端)鍵入以下語句;
$ sudo gem install cocoapods
等上十幾秒就會出現這樣的結果
這就代表你安裝成功了,666.
三.cocoapods的使用
cocoapods的使用和安裝也一樣簡單,為了方便我們可以先在xcode建立一個工程。
大家可能疑惑怎樣才能把我想要的三方庫添加進工程里面呢?那么我們需要一個文件來寫入我們想要的三方庫的名稱,這個文件就叫做“Podfile”,創建這個文件我們只需要在終端打開工程所在的文件目錄(cd目錄)然后在當前目錄下,鍵入語句:
$vim podfile
然后在vim環境下寫入你想添加的三方庫的名稱,例如我要添加MJRefresh,那我就輸入:
pod ’MJRefresh’
然后保存更改,退出。
(:wq)
這時候你在看工程目錄里多了個podfile的文件,注意podfile文件一定要和工程的.xcodeproj文件在同一目錄下。
最后,在終端里運行命令:
$ pod ?install
運行結束后你會看到這樣的結果 :
[!] Please close any current Xcode sessions and use `XXX.xcworkspace` for this project from now on.
然后你會發現目錄里多了個XXX.xcworkspace文件和podfile.lock文件。這就對了!
而上面結果的意思就是讓你關閉當前項目然后點擊XXX.xcworkspace文件重新打開工程。當你打開工程時你會發現你要添加的三方庫已經添加了!
如果你后續還要添加其他的三方庫你只需要打開podfile文件,按照 pod ' '的格式一次寫入文件,然后執行命令就可以了。如圖:
總結一下:
1.先在項目中創建Podfile,Podfile的內容是你想導入的類庫。一般類庫的原作者會告訴你導入該類庫應該如何寫Podfile;
2.運行命令:$ pod install。
2.編譯一個有cocoapods類庫的項目
我們在網上下載的含有cocoapods的demo時候,有時候編譯會出現一堆報紅,大概原因就是找不到相關庫的頭文件。不要著急這可能是因為demo里面的podfile文件過期,三方庫版本過低造成的。
解決方法就是在終端里運行以下命令:
$ pod update
等待運行結束,文件夾里就會生成一個名為XXX.xcworkspace的文件,這時候我們就可以通過這個文件打開工程了。
以上只是我的一些小見解,如果你覺得上面的敘述有問題,或者你有補充,請私信或評論。
更正:如果要增加新的類庫盡量不要在podfile文件里面直接修改了 可以在終端或者xcode里面修改保存 再執行pod命令
更新:使用過程中的一些問題
1.The dependency `MJExtension ` is not used in any concrete target 或者The dependency `SD_WebImage ` is not used in any concrete target
這個錯誤是因為所用的庫找不到指定的target 直接在終端或者xcode里面加下圖語句
將GiftTalk改成你的項目名稱然后執行pod update就可以了。
2.[!] Invalid `Podfile` file: syntax error, unexpected end-of-input, expecting keyword_end.無效的podfile文件。
關于這個問題我是參考了作者的方法解決的 http://www.cnblogs.com/mgbert/p/3945273.html 大家可以調試下。
以上是目前筆者遇到的問題 記錄下來 。以后再更新。