Cocoa Pods
一聚谁、簡介
CocoaPods是一個(gè)開發(fā) OS X 和 iOS應(yīng)用程序中第三方開源代碼的管理工具。
利用 CocoaPods,可以定義自己的依賴關(guān)系 (稱作 pods),并且隨著時(shí)間的變化,以 及在整個(gè)開發(fā)環(huán)境中對(duì)第三方庫的版本管理非常方便
CocoaPods 背后的理念主要體現(xiàn)在兩個(gè)方面
在工程中引入第三方代碼 會(huì)涉及到許多內(nèi)容蚊丐。針對(duì) Objective-C 初級(jí)開發(fā)者來說,工程文件的配置會(huì)讓 人很沮喪
在配置buildphases和linker flags過程中,會(huì)引起許多人為因素的 錯(cuò)誤
CocoaPods 簡化了這一切,它能夠自動(dòng)配置編譯選項(xiàng)
二、 CocoaPods的原理
它是將所有的依賴庫都放到另一個(gè)名為Pods項(xiàng)目中,然后 讓主項(xiàng)目依賴Pods項(xiàng)目,這樣,源碼管理工作都從主項(xiàng)目移到了Pods項(xiàng)目中
1、Pods項(xiàng)目最終會(huì)編譯成一個(gè)名為libPods.a的文件,主項(xiàng)目只需要依賴這個(gè).a 文件即可。
2怜械、對(duì)于資源文件,CocoaPods提供了一個(gè)名為Pods-resources.sh的bash腳本, 該腳本在每次項(xiàng)目編譯的時(shí)候都會(huì)執(zhí)行,將第三方庫的各種資源文件復(fù)制到目標(biāo)目錄中。
3傅事、CocoaPods通過一個(gè)名為Pods.xcconfig的文件來在編譯時(shí)設(shè)置所有的依賴和 參數(shù)缕允。
三、 CocoaPods安裝
+?更新gem
*?sudo?gemupdate--system
+?更新ruby的軟件源
*?gem?sources--removehttps://rubygems.org/
*?gem?sources?-ahttps://ruby.taobao.org/
*?gem?sources?-l
+?安裝CocoaPods
*?sudo?geminstallcocoapods
+?替換CocoaPods的鏡像索引
*?pod?repo?removemaster
*?pod?repoaddmasterhttp://git.oschina.net/akuandev/Specs.git
注意:上一步之后要輸入oschina的帳號(hào)密碼的哦蹭越。(如果上一步ok了)那下面的一步可以直接跳過障本。。直接執(zhí)行update方法
*? pod?repoaddmasterhttps://gitcafe.com/akuandev/Specs.git
*?pod?repoupdate
+?設(shè)置?pod?倉庫
*?pod?setup
+?測試
*?pod--version
卸載CocoaPods
sudo gem uninstall cocoapods
CocoaPods使用
四响鹃、 使用CocoaPods搜索第三方框架
$pod search AFNetworking
如果CocoaPods支持驾霜,將會(huì)輸出搜索到的所有類庫版本和信息,以及在Podfile中配置的寫法买置,終端返回信息如下:
-> AFNetworking (2.3.1)
A delightful iOS and OS X networking framework.
pod ‘AFNetworking‘, ‘~> 2.3.1’(這個(gè)語句是需要在編輯Podfile的時(shí)候輸入的命令粪糙,即是如何安裝下載相關(guān)類庫的指令)
- Homepage:https://github.com/AFNetworking/AFNetworking
- Source:https://github.com/AFNetworking/AFNetworking.git
- Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0,
2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3,
1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1,
四、 使用CocoaPods使用第三方框架
使用命令:
$cd /Users/shiyunlei/Desktop/CocoapodsSample(進(jìn)入工程目錄堕义,cd后面的是工程的路徑)
$ touch Podfile(創(chuàng)建Podfile文件)
然后使用vim編輯Podfile文件猜旬,使用命令:
$ vim Podfile
進(jìn)入如下界面
然后緊接著按鍵盤上的“i”鍵,變成如下狀態(tài)倦卖,這個(gè)時(shí)候可以對(duì)Podfile文件進(jìn)行編輯:
$platform:ios, ‘7.0‘
$ pod ‘AFNetworking‘, ‘~> 2.3.1‘
在編輯完成后按“esc”洒擦,
在按“:”,這個(gè)時(shí)候輸入wq,點(diǎn)擊回車,保存并退出怕膛。
這個(gè)時(shí)候打開Podfile文件就會(huì)看到里面添加了剛才在終端輸入的一行語句熟嫩,如下圖
然后在終端輸入命令安裝相應(yīng)的第三方類庫
$pod install ?如果這個(gè)方法不能使用(可能被墻了)一直卡在Updating local specs repositories。褐捻。掸茅。。柠逞。
請(qǐng)用下面的方法:
pod install --verbose --no-repo-update
因?yàn)檫@個(gè)過程需要下載相應(yīng)的類庫昧狮,所以時(shí)間和網(wǎng)速有關(guān)。
安裝成功之后截圖如下:
這個(gè)時(shí)候會(huì)看到之后打開工程都需要從類型為工程名.xcworkspace文件打開板壮。
通過CoreTextDemo.xcworkspace來打開項(xiàng)目逗鸣,這時(shí),我們的項(xiàng)目工程結(jié)構(gòu)就會(huì)變成下圖這樣,多出一個(gè)名為Pods的依賴工程撒璧,打開Pods文件夾后透葛,發(fā)現(xiàn)AFNetworking已經(jīng)在里面了,
這時(shí)候就可以在項(xiàng)目文件中引入AFNetworking了卿樱,這時(shí)候如果你發(fā)現(xiàn)import的時(shí)候沒有提示AFNetworking的文件僚害,可以在target- Build Settings下修改“User Header Search Paths”項(xiàng),新增${SRCROOT}并選擇rcursive繁调,如下圖萨蚕。