Cocoapods之安裝及使用

Cocoapods之安裝及使用
CocoaPods之公有倉(cāng)庫(kù)的創(chuàng)建

簡(jiǎn)介

Cocoapods是OS X和iOS下的一個(gè)第三方庫(kù)管理工具,并且支持Objective-C和swifit語(yǔ)言拢蛋。通過(guò)Cocoapods為項(xiàng)目添加稱為"Pods"的依賴庫(kù)(這些庫(kù)必須是Cocoapods所支持的)谆棱,并且輕松實(shí)現(xiàn)第三方庫(kù)的版本管理垃瞧。
引入Cocoapods的意義:Cocoapods在引入第三方庫(kù)時(shí)自動(dòng)為我們完成各種配置个从,包括配置編譯階段嗦锐、連接器選項(xiàng)奕污、甚至是ARC環(huán)境下的-fno-objc-arc配置等菊值;Cocoapods可以很方便的查找第三方庫(kù)腻窒,可以快速方便的尋找到優(yōu)秀的第三方庫(kù)以及它們的各種信息儿子。
原理:CocoaPods的原理是將所有的依賴庫(kù)都放到另一個(gè)名為Pods的項(xiàng)目中砸喻,然后讓主項(xiàng)目依賴Pods項(xiàng)目,這樣犯助,源碼管理工作都從主項(xiàng)目移到了Pods項(xiàng)目中剂买。Pods項(xiàng)目最終會(huì)編譯成一個(gè)名為libPods.a的文件,主項(xiàng)目只需要依賴這個(gè).a文件即可坐慰。
Cocoapods 官方網(wǎng)站:
https://cocoapods.org/
Cocoapods整個(gè)項(xiàng)目托管在github上结胀, 所有的Pods依賴庫(kù)也都依賴github
https://github.com/CocoaPods

一把跨、 配置Ruby環(huán)境着逐,安裝CocoaPods

  • CocoaPods是基于ruby ecosystem的,需要ruby環(huán)境县钥,使用ruby的gem命令若贮。所以我們的系統(tǒng)要有ruby環(huán)境蠢沿。然而Mac系統(tǒng)默認(rèn)會(huì)安裝好ruby環(huán)境舷蟀∩ú剑可在終端ruby -v查看ruby版本
//查看ruby版本
ruby -v
//輸出信息
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
  • 打開(kāi)終端河胎,依次執(zhí)行輸入的部分命令如下:
sudo gem update --system      //升級(jí)Ruby環(huán)境*
gem sources -l                               // 查看源列表
gem sources --remove https://rubygems.org/     // 將不需要的源移除掉
gem sources -a https://gems.ruby-china.com      // 添加ruby-china源源(當(dāng)然你有其他可用的源也可以)
sudo gem install -n /usr/local/bin cocoapods           // 安裝cocoapods,需要輸入用戶密碼,輸入完成后擂橘,按回車鍵,需要等待許久后才能完成安裝昌罩,成功安裝后會(huì)有提示
pod --version       //查看是否安裝成功茎用,如果成功會(huì)顯示pod的版本
pod setup   //這條命令是將Github上的開(kāi)源庫(kù)https://github.com/CocoaPods/Specs.git托管的Podspec索引文件都下載到本地 轨功,花費(fèi)時(shí)間比較久,
pod search AFNetworking    // 搜索AFNetworking庫(kù)
sudo gem uninstall cocoapods    //卸載CocoaPods

終端命令截圖:


終端命令.png

當(dāng)前CocoaPods版本

執(zhí)行pod setup ,這條命令是將Github上的開(kāi)源庫(kù)https://github.com/CocoaPods/Specs.git托管的Podspec索引文件都下載到本地的~/.cocoapods/repos/master/路徑下 ,花費(fèi)時(shí)間比較久昙楚,所以可以選擇直接從別的地方拷貝一份放到對(duì)應(yīng)的目錄下诈嘿,或者手動(dòng)去Github下載堪旧,下載完成后放到對(duì)應(yīng)的目錄下削葱。

  • 通過(guò)如下終端命令下載到對(duì)應(yīng)的位置,可以看到下載進(jìn)度淳梦。
cd  ~/.cocoapods/repos/master/ 
git clone https://github.com/CocoaPods/Specs.git
終端命令下載
cocoapods文件目錄.png
  • 搜索第三方庫(kù)
pod search AFNetworking
搜索失敗

搜索第三方庫(kù)如果出現(xiàn)了上述錯(cuò)誤析砸,可以執(zhí)行
rm ~/Library/Caches/CocoaPods/search_index.json來(lái)刪除本地舊的search_index.json文件,
然后再次輸入pod search AFNetworking進(jìn)行搜索爆袍,pod search 命令會(huì)先查看有無(wú)search_index.json文件首繁,如果不存在該文件,會(huì)自動(dòng)根據(jù)master文件夾生成一個(gè)新的search_index.json文件陨囊,
這時(shí)會(huì)提示Creating search index for spec repo 'master'..压语,然后就耐心等待吧.......成功了之后就如下圖:

搜索成功會(huì)顯示類庫(kù)的信息

二厕怜、安裝成功躁锡,使用CocoaPods

在使用CocoaPods之后杠输,我只需要將用到的第三方開(kāi)源庫(kù)放到一個(gè)名為Podfile的文件中搞糕,然后執(zhí)行pod install驹吮。CocoaPods就會(huì)自動(dòng)將這些第三方開(kāi)源庫(kù)的源碼下載下來(lái)射亏,并且為我的工程設(shè)置好相應(yīng)的系統(tǒng)依賴和編譯參數(shù)。

  • 使用時(shí)需要新建一個(gè)名為 Podfile 的配置文件,放在主項(xiàng)目的根目錄下(與TestFramework.xcodeproj文件同一層級(jí)),以我桌面上的TestFramework工程為例:

示例工程

用終端命令新建Podfile文件到主項(xiàng)目目錄(關(guān)于終端命令的使用可以看看這篇Mac 終端命令大全):

① 牍蜂、 cd到項(xiàng)目總目錄
②陕截、 創(chuàng)建Podfile配置文件

接著第①步驯妄,終端先執(zhí)行vim Podfile命令 ,接著在鍵盤端輸入 i犁享,進(jìn)入編輯模式姥卢,輸入如下配置信息(也可以先跳過(guò)輸入這一步,之后直接打開(kāi)Podfile文件編輯):

platform:ios,’8.0’     //平臺(tái)ios,Deployment Target 8.0
target “TestFramework" do        //關(guān)聯(lián)TestFramework.xcodeproj
pod 'AFNetworking'        //導(dǎo)入三方庫(kù)
pod 'MBProgressHUD' 
pod 'MJExtension', '~> 3.0.13'    //3.0.13是版本號(hào)
end

然后按Esc凄吏,并且輸入“ :”號(hào)進(jìn)入vim命令模式暮刃,然后輸入wq盅抚,回車后就會(huì)發(fā)現(xiàn)TestFramework項(xiàng)目目錄中多一個(gè)Podfile文件。

創(chuàng)建Podfile配置文件

編輯Podfile

生成Podfile文件
③ 瘸爽、 執(zhí)行 pod install 览露,生成管理三方庫(kù)的Pods工程
下載三方庫(kù)

命令執(zhí)行完成后韵卤,需要導(dǎo)入的第三方庫(kù)都已經(jīng)下載完成并且設(shè)置好了編譯參數(shù)和依賴溯香,同時(shí)你需要注意:

  • 使用 CocoaPods 生成的 TestFramework.xcworkspace 文件來(lái)打開(kāi)工程勉痴,而不是以前的 TestFramework.xcodeproj 文件蒸矛;
  • 當(dāng)需要更改Podfile文件配置信息時(shí) ,比如刪除或者增加三方庫(kù) ,直接編輯Podfile文件, 每次更改了 Podfile 文件后吮铭,你需要重新執(zhí)行一次pod install命令,別忘了要cd 到Podfile文件所在目錄溺欧。
  • 第三方庫(kù)們都有人在維護(hù)升級(jí)姐刁,當(dāng)我們需要更新下第三方庫(kù)的版本時(shí)谬俄,就需要終端執(zhí)行命令pod update。
生成TestFramework.xcworkspace
打開(kāi)TestFramework.xcworkspace
  • 刪除JSONKit庫(kù)時(shí)的終端命令與Podfile文件:


    刪除JSONKit庫(kù)時(shí)的終端命令與Podfile 文件
關(guān)于 Podfile.lock (引自:唐巧的博客

當(dāng)你執(zhí)行pod install之后乎婿,除了 Podfile 外捍靠,CocoaPods 還會(huì)生成一個(gè)名為Podfile.lock的文件性湿,Podfile.lock 應(yīng)該加入到版本控制里面躺孝,不應(yīng)該把這個(gè)文件加入到.gitignore中基跑。因?yàn)?code>Podfile.lock會(huì)鎖定當(dāng)前各依賴庫(kù)的版本僵芹,之后如果多次執(zhí)行pod install 不會(huì)更改版本隐解,要pod update才會(huì)改Podfile.lock了王浴。這樣多人協(xié)作的時(shí)候嗡载,可以防止第三方庫(kù)升級(jí)時(shí)造成大家各自的第三方庫(kù)版本不一致惩琉。

CocoaPods 的這篇 官方文檔 也在What is a Podfile.lock一節(jié)中介紹了Podfile.lock的作用闷供,并且指出:

This file should always be kept under version control.

三烟央、使用CocoaPods管理的三方庫(kù)


看著我的眼睛
贊贊.gif

如下錯(cuò)誤 解決辦法:https://blog.csdn.net/dzhongjie/article/details/81152983

錯(cuò)誤提示

CocoaPods 升級(jí)1.8.4的坑 CDN: trunk Repo update failed

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市歪脏,隨后出現(xiàn)的幾起案子疑俭,更是在濱河造成了極大的恐慌,老刑警劉巖婿失,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钞艇,死亡現(xiàn)場(chǎng)離奇詭異啄寡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)哩照,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門挺物,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人葡秒,你說(shuō)我怎么就攤上這事姻乓。” “怎么了眯牧?”我有些...
    開(kāi)封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蹋岩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我学少,道長(zhǎng)剪个,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任版确,我火速辦了婚禮扣囊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绒疗。我一直安慰自己侵歇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布吓蘑。 她就那樣靜靜地躺著惕虑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪磨镶。 梳的紋絲不亂的頭發(fā)上溃蔫,一...
    開(kāi)封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音琳猫,去河邊找鬼伟叛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛脐嫂,可吹牛的內(nèi)容都是我干的统刮。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼账千,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼侥蒙!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蕊爵,我...
    開(kāi)封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桦山,沒(méi)想到半個(gè)月后攒射,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體醋旦,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年会放,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了饲齐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咧最,死狀恐怖捂人,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情矢沿,我是刑警寧澤滥搭,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站捣鲸,受9級(jí)特大地震影響瑟匆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜栽惶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一愁溜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧外厂,春花似錦冕象、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至穿仪,卻和暖如春席爽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背啊片。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工只锻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人紫谷。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓齐饮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親笤昨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祖驱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349