cocoapods系列教程---安裝與使用

cocoapods系列教程---安裝與使用
cocoapods系列教程---Podfile文件
cocoapods系列教程---Podfile.lock文件 和 Spec Repo
cocoapods系列教程---spec文件
cocoapods系列教程---原理篇
cocoapods系列教程---讓自己的開源框架支持cocoapods
cocoapods系列教程---模塊化設(shè)計(jì)
cocoapods系列教程---創(chuàng)建私有pods

毫無疑問,官網(wǎng)是最好的教程:https://cocoapods.org/

CocoaPods項(xiàng)目的源碼在Github上管理。該項(xiàng)目開始于2011年8月12日,經(jīng)過多年發(fā)展,現(xiàn)在已經(jīng)成為iOS開發(fā)事實(shí)上的依賴管理標(biāo)準(zhǔn)工具孝情。開發(fā)iOS項(xiàng)目不可避免地要使用第三方開源庫,CocoaPods的出現(xiàn)使得我們可以節(jié)省設(shè)置和更新第三方開源庫的時(shí)間措拇。

安裝cocoapods

  • 安裝最新版cocoapods

    sudo gem install cocoapods
    
    pod setup
    
    

    pod setup 實(shí)際上做的事是將https://github.com/CocoaPods/SpecsCocoapods克隆~/.cocoapods/repos目錄下芹扭。即使在安裝時(shí)不執(zhí)行此命令囱持,在初次執(zhí)行pod install命令時(shí)稳懒,系統(tǒng)也會(huì)自動(dòng)執(zhí)行pod setup.
    很遺憾的是這個(gè)過程速度很慢,甚至被墻掉也很正常.國(guó)內(nèi)有人做了鏡像

    pod repo remove master
    pod repo add master https://gitcafe.com/akuandev/Specs.git
    
    

    理論上是這樣,可是最新版cocoapods貌似還是會(huì)自動(dòng)更新官方地址;無奈做了個(gè)投機(jī)取巧的辦法

       pod repo remove master
       pod repo add master https://gitcafe.com/akuandev/Specs.git
    cd ~/.cocoapods/repos/master
    git remote rm origin
    git remote add origin https://github.com/CocoaPods/SpecsCocoapods
    
    

    把遠(yuǎn)程倉(cāng)庫的地址改成官方的.

  • 安裝指定cocoapods版本

    sudo gem install cocoapods -v 0.39.0
    
    
  • 查看cocoapods的版本

    pod --version
    
    
  • 如果你的 gem 太老闲擦,可能也會(huì)有問題,可以嘗試用如下命令升級(jí) gem:

    sudo gem update --system
    
    
  • 升級(jí),更新至最新版cocoapods

    sudo gem update cocoapods  
    
    

    或者

    sudo gem install cocoapods  
    
    

    最近2016.8升級(jí)會(huì)提示:

    Error installing cocoapods:  activesupport requires Ruby version >= 2.2.2.
    
    

    意思是要求ruby版本要不小于2.2.2,升級(jí)下ruby版本即可,如何升級(jí)ruby點(diǎn)擊這里

  • 一般安裝完成之后我們都修改鏡像源,修改成國(guó)內(nèi)的,訪問速度比較快

    //先刪除
    gem sources --remove https://rubygems.org/
    
    //再添加淘寶,注意是https
    gem sources -a https://ruby.taobao.org/
    
    

    列出源,驗(yàn)證你的Ruby鏡像是并且僅是taobao场梆,可以用以下命令查看:

    gem sources -l
    
    

    輸出如下

    *** CURRENT SOURCES ***
    
    https://ruby.taobao.org/
    
    

卸載

  • 如果本地有只有一個(gè)版本,會(huì)直接卸載.如果有多個(gè)版本的cocoapods,系統(tǒng)會(huì)讓你選擇,卸載哪一個(gè).

    sudo gem uninstall cocoapods
    
    
  • 卸載指定的版本

    sudo gem uninstall cocoapods -v 0.38.0
    
    

降級(jí)

某些依賴庫可能比較老,不支持新的cocoapods,這時(shí)候需要降級(jí),首先卸載新版本,然后裝舊版本

sudo gem uninstall cocoapods -v 1.0.0
sudo gem install cocoapods -v 0.38.0

使用

  • 判斷某個(gè)庫是否支持CocoaPods,或者查找某個(gè)庫

    pod search AFNetworking
    
    

    支持只輸入庫名字的一部分,比如我想查找AFNetworking.但是我只記得AFN這三個(gè)字母,我可以這樣搜索:

    pod search AFN
    
    
  • 創(chuàng)建podfile,先 cd 到項(xiàng)目所在目錄,創(chuàng)建名字為podfile文件,podfile這個(gè)文件
    可以直接用Xcode打開,編輯在Podfile文件里輸入以下文字:

    platform :ios, '8.0'
    target 'Your_App_Name' do
    pod 'AFNetworking', '~> 3.0'
    end
    
    
    • ios:表示ios平臺(tái),其它還有OS X等
    • 8.0:表示支持iOS8.0以后版本
    • 3.0:表示AFNetworking指定大于3.0版本,如果不指定,默認(rèn)最新版本
    • 如果依賴庫是swift寫的,應(yīng)該加上一句 use_frameworks!
    platform :ios, '8.0'
    use_frameworks!
    
    target 'Your_App_Name' do
    pod 'AFNetworking', '~> 3.0'
    //這個(gè)庫是用switf寫的
    pod 'SwiftyJSON', '~> 2.3'
    end
    
    
  • 安裝依賴

    pod install
    
    

    但是每次都很慢,因?yàn)槊看螆?zhí)行這個(gè)命令都會(huì)更新本地索引文件,用下面這句命令替代:

    pod install --no-repo-update
    
    
  • 單獨(dú)更新某一個(gè)依賴.例如只更新 AFNetworking

    pod update AFNetworking
    
    
  • 更新所有依賴,如果某個(gè)依賴已經(jīng)是最新,則不再更新

    pod update
    
    
  • 指定源地址,例如,指定為本地目錄,這種一般用于將依賴庫提前放到了本地,這樣速度會(huì)快過很多

    pod 'AFNetworking', path: '/Users/apple/Desktop/CodeStore/AFNetworking'
    
    

    執(zhí)行安裝完畢之后提示如下:

    [!] Please close any current Xcode sessions and use Your_Project_Name.xcworkspace for this project from now on.
    
    

    使用 CocoaPods 生成的 ***.xcworkspace***文件來打開工程,而不是以前的 ***.xcodeproj*** 文件

  • 使用CocoaPods來管理三方庫纯路,還是比較方便的或油,但是有個(gè)美中不足的小問題,在使用import引入文件時(shí)驰唬,不能自動(dòng)補(bǔ)齊顶岸,需要手工copy文件名.解決辦法:Target -> Build Settings 腔彰,User Header Search Paths條目中,添加"${SRCROOT}”或者“$(PODS_ROOT)”辖佣,并且選擇Recursive霹抛,遞歸搜索,然后就可以自動(dòng)補(bǔ)齊了卷谈。

pod install 和 pod update 的區(qū)別

  1. pod install 在添加了新的依賴庫,或者刪除了某個(gè)依賴庫.會(huì)把依賴庫的版本寫入Podfile.lock文件.它所解決的只是 有和無得問題,如果有就什么也不做,而不會(huì)檢查更新,即使依賴庫有了新的版本.如果沒有就添加,就會(huì)下載podfile中指定的版本,如果沒有指定版本,那么下載最新版本.
列出有最新版本的依賴庫:

```
pod outdated
    
```
  1. pod update 只是更新依賴庫的版本,并且更新podfile.lock中記錄的版本.如果podfile文件中指定了某個(gè)版本,那么就會(huì)更新到該版本,而不是最新版本.例如:AFNetworking最新版本是3.3.0,而我指定的是2.0,那么只會(huì)更新到2.0,而不是3.3.0 如果Podfile中沒有指定版本或者指定是某個(gè)范圍,則更新該庫依賴庫并更新pod.lock中記錄的版本. 如果podfile中所有的依賴庫都沒有指定版本,那么會(huì)更新所有的依賴庫.

  2. 總結(jié)就是:首次添加用pod install,更新用pod update,單獨(dú)更新某一個(gè)依賴pod update + 名字,每個(gè)依賴庫可能對(duì)cocoapods的版本要求不一致,所以建議多用單獨(dú)更新.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末杯拐,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子世蔗,更是在濱河造成了極大的恐慌端逼,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件污淋,死亡現(xiàn)場(chǎng)離奇詭異顶滩,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)寸爆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門礁鲁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赁豆,你說我怎么就攤上這事救氯。” “怎么了歌憨?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵着憨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我务嫡,道長(zhǎng)甲抖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任心铃,我火速辦了婚禮准谚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘去扣。我一直安慰自己柱衔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布愉棱。 她就那樣靜靜地躺著唆铐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奔滑。 梳的紋絲不亂的頭發(fā)上艾岂,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音朋其,去河邊找鬼王浴。 笑死脆炎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的氓辣。 我是一名探鬼主播秒裕,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼钞啸!你這毒婦竟也來了几蜻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤爽撒,失蹤者是張志新(化名)和其女友劉穎入蛆,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硕勿,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哨毁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了源武。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扼褪。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粱栖,靈堂內(nèi)的尸體忽然破棺而出话浇,到底是詐尸還是另有隱情,我是刑警寧澤闹究,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布幔崖,位于F島的核電站,受9級(jí)特大地震影響渣淤,放射性物質(zhì)發(fā)生泄漏赏寇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一价认、第九天 我趴在偏房一處隱蔽的房頂上張望嗅定。 院中可真熱鬧,春花似錦用踩、人聲如沸渠退。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽碎乃。三九已至,卻和暖如春丁屎,著一層夾襖步出監(jiān)牢的瞬間荠锭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工晨川, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留证九,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓共虑,卻偏偏與公主長(zhǎng)得像愧怜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妈拌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 項(xiàng)目組件化拥坛、平臺(tái)化是技術(shù)公司的共同目標(biāo),越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件尘分,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 21,475評(píng)論 0 39
  • CocoaPods 是什么猜惋? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開源庫的工具。CocoaPo...
    朝洋閱讀 25,636評(píng)論 3 51
  • 醉花陰 晝起薄霧初陽透培愁,涼夜輕聲皺著摔。云掛黃枝頭,烏鵲哀鳴定续,喬木不堪逗谍咆。 白泉寒徹黑石...
    阡陌毅水寒閱讀 260評(píng)論 0 2
  • 不殤情,只想對(duì)你講幾件事情私股,對(duì)于我們的關(guān)系也沒有再抱什么目的摹察,只是想告訴你,可以的話倡鲸,把自己當(dāng)一個(gè)局外人供嚎,...
    閱覽星辰閱讀 172評(píng)論 0 0