一, CocoaPods 介紹
CocoaPods 是 iOS 最常用的第三方類(lèi)庫(kù)管理工具忧饭,絕大部分有名的開(kāi)源類(lèi)庫(kù)都支持 CocoaPods。
CocoaPods 是用 ruby 實(shí)現(xiàn)的影所,要想使用它首先需要有 ruby 的環(huán)境。
在OS X系統(tǒng)默認(rèn)已經(jīng)可以運(yùn)行 ruby。但 ruby 版本過(guò)低是無(wú)法正常支持 CocoaPods 的使用邻邮,所以需要先安裝更新升級(jí) rvm 和 ruby。
二, 安裝流程
第1步.
檢查是否存在rvm環(huán)境, 打開(kāi)終端輸入
$ rvm -v ```
如果存在rvm環(huán)境 返回信息:
rvm 1.27.0 (latest) by Wayne E. Seguin wayneeseguin@gmail.com, Michal Papis mpapis@gmail.com [https://rvm.io/]
不存在則出現(xiàn):
-bash: rvm: command not found
如果不存在rvm脯丝,先安裝配置rvm商膊,輸入:
$ curl -L https://get.rvm.io | bash -s stable
安裝完成后載入rvm:
$ source ~/.rvm/scripts/rvm
####第2步.
確定已安裝rvm并載入rvm環(huán)境后,下一步檢查ruby 版本環(huán)境:
OS X系統(tǒng)默認(rèn)存在ruby宠进,但版本低于2.2.2晕拆,安裝會(huì)出錯(cuò),所以先檢查其版本
$ sudo gem -v
低于2.6.x的建議更新到最新:
$ gem update --system
返回更新成功信息:
Updating rubygems-update
Fetching: rubygems-update-2.6.7.gem (100%)
Successfully installed rubygems-update-2.6.7
######補(bǔ)充指令
*查詢(xún)已安裝的 ruby:*
$ rvm list
*卸載一個(gè)已安裝版本:*
$ rvm remove 1.9.2
*修改默認(rèn)使用的ruby版本*
$ rvm use 2.3.0 --default
---
####第3步.
由于淘寶的鏡像 (https://ruby.taobao.org/ )已經(jīng)不可用了材蹬。
所以接下來(lái)我們用最新支持的ruby鏡像 (https://gems.ruby-china.org/)
首先檢查電腦目前的鏡像:
$ gem sources -l
如果電腦沒(méi)安裝過(guò)CocoaPods实幕,默認(rèn)的應(yīng)該是https://rubygems.org/
*** CURRENT SOURCES ***
https://rubygems.org/
輸入移除命令:
$ gem sources --remove https://rubygems.org/
返回移除成功:
https://rubygems.org/ removed from sources
添加國(guó)內(nèi)鏡像 https://gems.ruby-china.org 輸入:
$ gem sources --add https://gems.ruby-china.org
成功后返回信息:``https://gems.ruby-china.org added to sources``
確認(rèn)當(dāng)前ruby源:
$ gem sources -l
返回信息:
*** CURRENT SOURCES ***
https://gems.ruby-china.org //已經(jīng)添加
##三,安裝CocoaPods
####第1步.
如果系統(tǒng)版本是10.11.x 輸入這行命令:
$ sudo gem install -n /usr/local/bin cocoapods
否則輸入:
$ sudo gem install cocoapods
注意:當(dāng)系統(tǒng)升級(jí)10.11 后堤器,輸入pod命令會(huì)出現(xiàn)
``-bash: pod: command not found``
解決方法就是輸入下面這一行命令就可以了:
$ sudo gem install -n /usr/local/bin cocoapods
接著$pod setup:
$ pod setup
提示:如果終端一直停留在``Settng up CocoaPods master repo``這個(gè)狀態(tài),是因?yàn)橐M(jìn)行下載安裝,文件比較大,此時(shí)你可通過(guò)新開(kāi)一個(gè)終端窗口昆庇,輸入``cd ~/.cocoapods/``命令行跳到cocoapods文件夾內(nèi),執(zhí)行``du -sh *``查看正在下載的文件夾的大小闸溃。
下載完成最后返回顯示 ``Setup completed``
當(dāng)出現(xiàn)如下:
[!] An error occurred while performing [Git](http://lib.csdn.net/base/git) pull
on repo master
.
[!] /usr/bin/git pull --ff-only
原因: Cocoapods的分支不支持當(dāng)前最新的Xcode版本
解決辦法: 刪除master分支 重新建立新的分支
``sudo rm -fr ~/.cocoapods/repos/master``
然后再: pod setup
####第2步.
用xcode新建一個(gè)project(例如:CocoaPodsTestDemo)整吆,并在終端用cd到工程文件夾目錄(具體操作:終端輸入cd+空格+工程文件夾直接拖拽到終端+回車(chē))
查找所需第三方庫(kù)的最新版本例如:AFNetworking,輸入指令:
$ pod search 'AFNetworking' //(退出搜索按 :wq )
####第3步.
vim Podfile 配置文件
$ vim Podfile
寫(xiě)入以下內(nèi)容并保存 ( 提示:終端vim文件 按 i 進(jìn)入編輯模式 辉川,esc 退出編輯模式(如果esc沒(méi)反應(yīng)表蝙,control+c也可以退出編輯狀態(tài)),退出編輯模式以后按 :wq 可保存并退出Podfile)
Uncomment this line to define a global platform for your project
platform :ios, '8.0'
target 'CocoaPodsTestDemo' do
Uncomment this line if you're using Swift or would like to use dynamic frameworks
Pods for CocoaPodsTestDemo
pod 'AFNetworking', '~>3.1.0'
pod 'SDWebImage'
pod 'FMDB'
pod 'Masonry'
pod 'MJRefresh'
use_frameworks!
pod 'ReactiveCocoa'
end
備注:platform那一行乓旗,ios三個(gè)字母都要小寫(xiě)府蛇,而且與前面的冒號(hào)之間不能有間隔,后面的版本號(hào)也可以不寫(xiě)屿愚,但是有些開(kāi)源庫(kù)對(duì)版本是有要求的汇跨,比如要在6.0以上才能運(yùn)行,遇到這樣的開(kāi)源庫(kù)就需要寫(xiě)上版本號(hào)
####第4步.
保存退出Pofile后
下載第三方庫(kù)文件到項(xiàng)目工程中:
$ pod install
####第5步.
打開(kāi)CocoaPodsTestDemo.xcworkspace
打開(kāi)Pod文件里面就是下載的庫(kù)
![](http://upload-images.jianshu.io/upload_images/3252527-cb529ba321ef0903.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300)
Done妆距。
>使用說(shuō)明:
>1.從此以后需要使用Cocoapods生成的 .xcworkspace文件來(lái)打開(kāi)工程穷遂,而不是使用以前的.xcodeproj文件。
>2.每次更改了Podfile文件娱据,都需要重新執(zhí)行一次pod update命令塞颁。
>備注:當(dāng)執(zhí)行pod install之后,除了Podfile吸耿,還會(huì)生成一個(gè)名為Podfile.lock的文件祠锣,它會(huì)鎖定當(dāng)前各依賴(lài)庫(kù)的版本,之后即使多次執(zhí)行pod install也不會(huì)更改版本咽安,只有執(zhí)行pod update才會(huì)改變伴网。Podfile.lock.在多人協(xié)作的時(shí)候,這樣可以防止第三方庫(kù)升級(jí)時(shí)候造成大家各自的第三方庫(kù)版本不一致妆棒。所以在提交版本的時(shí)候不能把它落下澡腾,也不要添加到.gitignore中沸伏。