哈哈哈?
首先說一下關(guān)于pod的命令語句
1. 在命令行中進(jìn)入到當(dāng)前的工程的文件夾
簡單說下命令行的幾個用法:
cd + 空格 + 文件名 = 進(jìn)入文件夾
cd + 空格 + .. = 返回上一級目錄
pwd 查看當(dāng)前目錄
2.打開?Podfile文件:open -e Podfile ?保存退出:commond+s
3.進(jìn)行編輯模式:vi?Podfile ??按下“i”吻贿,進(jìn)入編輯模式讥脐,把光標(biāo)移動到需要的位置梨睁,輸入下面的指令
例如:
target '你的項目名' do
pod 'AFNetworking', '~> 2.6'
pod 'ORStackView', '~> 3.0'
end(一定要加end,否則會報錯)
4.按下”esc”+”shift”+”;” ? ?或”esc”+“:” ?退出編輯模式
輸入“wq”,回車陶珠,退出vi編譯器
一:正文
1.為什么需要CocoaPods
在進(jìn)行iOS開發(fā)的時候,總免不了使用第三方的開源庫碉纺,比如SBJson徐裸、AFNetworking遣鼓、Reachability等等。使用這些庫的時候通常需要:
下載開源庫的源代碼并引入工程
向工程中添加開源庫使用到的framework
解決開源庫和開源庫以及開源庫和工程之間的依賴關(guān)系重贺、檢查重復(fù)添加的framework等問題
如果開源庫有更新的時候骑祟,還需要將工程中使用的開源庫刪除回懦,重新執(zhí)行前面的三個步驟,頓時頭都大了次企。怯晕。。
自從有了CocoaPods以后缸棵,這些繁雜的工作就不再需要我們親力親為了舟茶,只需要我們做好少量的配置工作,CocoaPods會為我們做好一切堵第!
2.什么是CocoaPods
CocoaPods是一個用來幫助我們管理第三方依賴庫的工具吧凉。它可以解決庫與庫之間的依賴關(guān)系,下載庫的源代碼型诚,同時通過創(chuàng)建一個Xcode的workspace來將這些第三方庫和我們的工程連接起來客燕,供我們開發(fā)使用鸳劳。
使用CocoaPods的目的是讓我們能自動化的狰贯、集中的、直觀的管理第三方開源庫赏廓。
3.核心組件
CocoaPods是OS X和iOS下的一個第三類庫管理工具涵紊,通過CocoaPods工具我們可以為項目添加被稱為“Pods”的依賴庫(這些類庫必須是CocoaPods本身所支持的),并且可以輕松管理其版本幔摸。
Cocoapods意義體現(xiàn)在兩個方面摸柄。第一,在引入第三方庫時它可以自動為我們完成各種各樣的配置既忆,包括配置編譯階段驱负、連接器選項、甚至是ARC環(huán)境下的-fno-objc-arc配置等患雇。第二跃脊,使用CocoaPods可以很方便地查找新的第三方庫,這些類庫是比較“標(biāo)準(zhǔn)的”苛吱,而不是網(wǎng)上隨便找到的酪术,這樣可以讓我們找到真正好用的類庫。
接下來我們將介紹CocoaPods的使用翠储。
CocoaPods的核心組件
CocoaPods是用Ruby寫的绘雁,并劃分成了若干個Gem包。
CocoaPods在解析執(zhí)行過程中最重要的幾個包的路徑分別是:CocoaPods/CocoaPods援所、CocoaPods/Core和CocoaPods/Xcodeproj庐舟。
CocoaPods / CocoaPod:這是面向用戶的組件,每當(dāng)執(zhí)行一個pod命令時住拭,這個組件將被激活挪略。它包括了所有實用CocoaPods的功能耻涛,并且還能調(diào)用其他gem包來執(zhí)行任務(wù)。
CocoaPods / Core:Core gem提供了與CocoaPods相關(guān)的文件(主要是podfile和podspecs)的處理瘟檩。
Podfile:該文件用于配置項目所需要的第三方庫抹缕,它可以被高度定制。本文中我們主要在這里做動作墨辛。
Podspec:該文件描述了一個庫將怎樣被添加進(jìn)工程中卓研。.podspec文件可以標(biāo)識該第三方庫所需要的源碼文件、依賴庫睹簇、編譯選項奏赘,以及其他第三方庫需要的配置。
CocoaPods / Xcodeproj:這個包負(fù)責(zé)處理工程文件太惠,它能創(chuàng)建以及修改.xcodeproj文件和.xcworkspace文件磨淌。它也可以作為一個獨(dú)立的包使用,當(dāng)你要編寫修改項目文件的腳本時凿渊,可以考慮使用CocoaPods/Xcodeproj梁只。
二、安裝
由于網(wǎng)上的教程基本都大同小異埃脏,但細(xì)節(jié)之處還不是很完善搪锣,所以借機(jī)會在這里補(bǔ)充下:
注:要使用CocoaPods,那就要下載安裝它彩掐,而下載安裝CocoaPods需要Ruby環(huán)境
1构舟、Ruby環(huán)境搭建
當(dāng)前安裝環(huán)境為Mac mini 10.8.5。Mac ?OS本身自帶Ruby堵幽,但還是更新一下保險狗超,因為我第一次安裝在沒有更新Ruby的情況下就失敗了。
a 查看下當(dāng)前ruby版本:打開終端輸入 ruby -v(確實安裝了朴下,不過用這個版本接下來工作失敗了努咐,所以更新下ruby)
ritekiMac-mini:PodTest?lucky$?ruby?-v
ruby1.8.7?(2012-02-08?patchlevel358)?[universal-darwin12.0]
ritekiMac-mini:PodTest?lucky$
b 更新ruby
終端輸入如下命令(把Ruby鏡像指向taobao,避免被墻桐猬,你懂得)
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l ?(用來檢查使用替換鏡像位置成功)
ritekiMac-mini:~?lucky$?gem?sources?--removehttps://rubygems.org/
https://rubygems.org/?removed?from?sources
ritekiMac-mini:~?lucky$?gem?sources?-ahttps://ruby.taobao.org/
https://ruby.taobao.org/?added?to?sources
ritekiMac-mini:~?lucky$?gem?sources?-l
***?CURRENTSOURCES?***
2麦撵、下載安裝CocoaPods
終端輸入:sudo gem install cocoapods
ritekiMac-mini:~?lucky$?sudo?gem?install?cocoapods
CHANGELOG:
##?0.32.1
#####?Bug?Fixes
*?Fixed?the?Podfile?`default_subspec`?attribute?in?nested?subspecs.
[Fabio?Pelosin][irrationalfab]
\?[#2050](https://github.com/CocoaPods/CocoaPods/issues/2050)
Successfully?installed?cocoapods-0.32.1
Installing?ri?documentation?for?cocoapods-0.32.1
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280:?warning:?conflicting?chdir?during?another?chdir?block
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287:?warning:?conflicting?chdir?during?another?chdir?block
Done?installing?documentation?for?cocoapods?after?10?seconds
1?gem?installed
這樣就下載安裝好了CocoaPods
3、使用CocoaPods
a ?新建一個項目溃肪,名字PodTest
b ?終端中免胃,cd到項目總目錄(注意:包含PodTest文件夾、PodTest.xcodeproj惫撰、PodTestTest的那個總目錄)
cd?/Users/lucky/Desktop/PodTest
c ?建立Podfile(配置文件)
接著上一步羔沙,終端輸入?vim Podfile
鍵盤輸入 i,進(jìn)入編輯模式厨钻,輸入
platform :ios, '7.0'
pod 'MBProgressHUD', '~> 0.8'
然后按Esc扼雏,并且輸入“ :”號進(jìn)入vim命令模式坚嗜,然后在冒號后邊輸入wq
注意:鍵盤輸入 :后,才能輸入wq诗充〔允撸回車后發(fā)現(xiàn)PodTest項目總目錄中多一個Podfile文件
首先進(jìn)入工程根目錄,然后執(zhí)行pod install命令蝴蜓,CocoaPods就開始為我們做下載源碼碟绑、配置依賴關(guān)系、引入需要的framework等一些列工作茎匠,命令的執(zhí)行結(jié)果打印出來如下:
查看項目根目錄:
注意:現(xiàn)在打開項目不是點(diǎn)擊 PodTest.xodeproj了格仲,而是點(diǎn)擊?PodTest.xcworkspace
對于工程發(fā)生的變化,有幾點(diǎn)需要說明:
第三方庫會被編譯成靜態(tài)庫供我們正真的工程使用
CocoaPods會將所有的第三方庫以target的方式組成一個名為Pods的工程诵冒,該工程就放在剛才新生成的Pods目錄下凯肋。整個第三方庫工程會生成一個名稱為libPods.a的靜態(tài)庫提供給我們自己的CocoaPodsTest工程使用。
我們的工程和第三方庫所在的工程會由一個新生成的workspace管理
為了方便我們直觀的管理工程和第三方庫汽馋,CocoaPodsTest工程和Pods工程會被以workspace的形式組織和管理侮东,也就是我們剛才看到的CocoaPodsTest.xcworkspace文件。
原來的工程設(shè)置已經(jīng)被更改了惭蟋,這時候我們直接打開原來的工程文件去編譯就會報錯苗桂,只能使用新生成的workspace來進(jìn)行項目管理药磺。
打開項目后看到項目結(jié)構(gòu)并且測試一下:
在項目中引用剛才添加的第三方庫的頭文件告组,執(zhí)行編譯操作,果斷成功癌佩!
運(yùn)行結(jié)果:
補(bǔ)充:
1木缝、CocoaPods的基本安裝及使用都詳細(xì)的說明了,但還有一些補(bǔ)充围辙,當(dāng)需要同時導(dǎo)入多個第三方時候怎么辦 我碟?
這就需要修改Podfile了,就是用vim編輯的那個保存在項目根目錄中的文件姚建,修改完了Podfile文件矫俺,需要重新執(zhí)行一次pod install命令。
例如:
platform :ios
pod 'JSONKit', ? ? ? '~> 1.4'
pod 'AFNetworking',? '~> 2.0'
2掸冤、CocoaPods可以查找你想要的第三方庫
終端輸入命令:pod search UI
瘋了了厘托,我怎么查找這么大眾的關(guān)鍵字,好多庫~~
然后重新編輯Podfile文件稿湿,按照之前的步驟铅匹,把更多的庫都導(dǎo)入項目!
錯誤總結(jié)
1.執(zhí)行"pod install (如果終端出現(xiàn)updating local specs repositories,那么請用ctrl+c強(qiáng)制結(jié)束命令進(jìn)程,然后執(zhí)行?pod install --verbose --no-repo-update?或者?pod install --no-repo-update"
#pragma mark -?注意如果在pod install之后出現(xiàn)Creating shallow clone of spec repo `master-1` from `https://github.com/CocoaPods/Specs.git`卡死情況,就在執(zhí)行pod install之前執(zhí)行pod setup
2. 現(xiàn)在饺藤,你的所有第三方庫都已經(jīng)下載完成并且設(shè)置好了編譯參數(shù)和依賴包斑,你只需要記住如下?2點(diǎn)即可:
使用?CocoaPods生成的?.xcworkspace文件來打開工程流礁,而不是以前的?.xcodeproj?文件。
每次更改了?Podfile文件罗丰,你需要重新執(zhí)行一次"pod update命令神帅。(如果終端出現(xiàn)updating local specs repositories,那么請用ctrl+c強(qiáng)制結(jié)束命令進(jìn)程,然后執(zhí)行pod update --verbose --no-repo-update或者pod update --no-repo-update"
"pod setup時報錯解決辦法"
出錯:pod setup的時候報錯,?argumenterror , syntax error on line 4, col 0: `min:0.29.0`
解決方法如下:
1.命令行運(yùn)行
# -rf ~/.cocoapods/repos
# pod setup(這個我還是沒成功萌抵,報錯ruby里什么找不到文件枕稀,于是我更新ruby,如果你成功了谜嫉,就不用了)
2.更新ruby
xcode->preference->download里安裝Command Line Tools
安裝rvm:命令行里運(yùn)行
$ curl -L get.rvm.io | bash -s stable
等待萎坷,運(yùn)行
$ source ~/.bashrc
$ source ~/.bash_profile
查看安裝
$ rvm -v
升級ruby:
$ rvm install ruby 2.1.1
ruby升級好了,查看版本?$ ruby -v
3.我ruby安裝又失敗了沐兰,于是谷歌
Error running 'requirements_osx_port_update_system ruby-2.1.1',
根據(jù)一篇文章哆档,我又繼續(xù)了,命令行里
$ sudo port -v selfupdate
結(jié)果有出錯了住闯,$ sudo:port:command not faund
于是一番搜索瓜浸,
$ export PATH=$PATH:/opt/local/bin
$ source .profile
升級macports
$sudo port -v selfupdate
終于可以升級ruby了,
$ rvm install 2.1.1
成功比原,于是插佛,下一步
$ sudo gem install cocoapods
成功
4.重新運(yùn)行
$? pod setup
成功
關(guān)注:http://www.reibang.com/p/dfe970588f95
錯誤總結(jié)
使用CocoaPod出現(xiàn)-bash: pod: command not found ”的問題,倘若不想移除一遍已安裝的CocoaPods
先運(yùn)行
sudo gem install -n /usr/local/bin cocoapods
不行再運(yùn)行
sudo chmod +rx /usr/local/bin
在項目中移除CocoaPods
如果你覺得CocoaPods讓你的項目出現(xiàn)了問題量窘,不好用甚至是惡心雇寇,想將其從項目中徹底移除,也有方法:
1.刪除工程文件夾下的Podfile蚌铜、Podfile.lock和Pods文件夾锨侯。
2.刪除xcworkspace文件。
3.打開xcodeproj文件冬殃,刪除項目中的Pods文件夾及Pods.xcconfig引用和libpods.a:
4.打開Build Phases選項囚痴,刪除Check Pods Manifest.lock和Copy Pods Resources,以及Embeded Pods Frameworks:
5.完成审葬,編譯運(yùn)行深滚,無錯通過。
總結(jié)
從項目中移除某個類庫直接修改" Podfile "文件即可涣觉,但是移除整個CocoaPods就有點(diǎn)麻煩了痴荐,或許有其他方法。
另外旨枯,如果在編輯工程時不小心刪除了某個文件蹬昌,如Podfile.lock,那么我們就要用上面的方法先移除整個CocoaPods攀隔,然后重新建立Podfile和使用pod install命令重裝CocoaPods皂贩。
學(xué)習(xí)參考資源:https://www.cnblogs.com/oc-bowen/p/5251668.html