CocoaPods的安裝
$ sudo gem install -n /usr/local/bin cocoapods
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)ERROR: Possible alternatives: cocoa pods
這是因為ruby的軟件源rubygems.org因為使用亞馬遜的云服務,被我天朝屏蔽了,需要更新一下ruby的源,過程如下:
$ gem sources -l (查看當前ruby的源)
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://gems.ruby-china.org/
$ gem sources -l
這里使用的是國內最新鏡像源(淘寶的Ruby鏡像已經不更新了)
如果gem太老,可以嘗試用如下命令升級gem
$ sudo gem update --system
升級成功后會提示: RubyGems system software updated
然后重新執行安裝下載命令
$ sudo gem install -n /usr/local/bin cocoapods
接下來進行安裝,執行:
$ pod setup
Terminal會停留在 Setting up CocoaPods master repo 這個狀態一段時間,是因為要進行下載安裝,而且目錄比較大,需要耐心等待一下.如果想加快速度,可使用cocoapods的鏡像索引.(文章末尾附使用鏡像索引的方法)
安裝成功后,你會看到:
Cocoapods的使用
進入工程所在的目錄(工程根目錄)
執行命令
touch Podfile
這句是說新建一個名為Podfile的文件(不能寫成別的名字,也可以自己在工程根目錄里面直接新建)
然后對改文件進行編輯,執行命令
open -e Podfile
第一次執行這個命令,會有一個空白文件打開,可以先放在一邊,
Podfile文件的格式應該如下:
platform :ios, '7.0'
target 'dongguantou' do
pod 'AFNetworking', '~> 2.5.4' #網絡庫
pod 'SDWebImage', '~> 3.7.3' #網絡圖片
pod 'MJRefresh', '~> 3.0.8' #下拉上拉
pod 'MJExtension', '~> 3.0.7' #擴展
pod 'FMDB', '~> 2.5' #數據庫操作
pod 'OpenUDID', '~> 1.0.0' #獲取設備唯一標示符
end
Buyer 是 target的名字 也就是你的項目名
需要注意的幾點:platform那一行,ios三個字母都要小寫,而且與前面的冒號之間不能有間隔,后面的版本號也可以不寫,但是有些開源庫對版本是有要求的,比如要在6.0以上才能運行,遇到這樣的開源庫就需要寫上版本號。
platform下面就是Cocoapods需要集成的開源庫,根據你的需要確定集成那些庫。
舉個例子:
我要集成AFNetworking這個庫類,需要在Cocoapods里面先搜索是否有需要的庫,可以在Terminal中輸入:
pod search AFNetworking
回車之后就可以看到和你搜索的關鍵字相關的一些庫類,如圖:
其中第一個就是我們需要的,把pod ‘AFNetworking’, ‘~>2.5.3’
那一行復制到我們的Podfile文件中,保存修改。
然后在Terminal中執行 :
pod install
這樣,AFNetworking就已經下載完成并且設置好了編譯參數和依賴,以后使用的時候切記如下兩點:
1.從此以后需要使用Cocoapods生成的 .xcworkspace文件來打開工程,而不是使用以前的.xcodeproj文件
2.每次更改了Podfile文件,都需要重新執行一次pod update命令
ps:當執行pod install之后,除了Podfile,還會生成一個名為Podfile.lock的文件,它會鎖定當前各依賴庫的版本,之后即使多次執行pod install也不會更改版本,只有執行pod update才會改變Podfile.lock.在多人協作的時候,這樣可以防止第三方庫升級時候造成大家各自的第三方庫版本不一致。所以在提交版本的時候不能把它落下,也不要添加到.gitignore中.
參考:
http://www.lxweimin.com/p/6e5c0f78200a
http://blog.sina.com.cn/s/blog_5971cdd00102wlkk.html