基礎(chǔ)-簡介

1. CocoaPods簡介

CocoaPods是一個(gè)用來幫助我們管理iOS第三方依賴庫的工具今阳。它可以解決庫與庫之間的依賴關(guān)系,目的是讓我們能自動化的、集中的狼速、直觀的管理第三方開源庫鬓催。

CocoaPods的安裝和使用

CocoaPods是用Ruby實(shí)現(xiàn)的,要想使用它首先需要有Ruby的環(huán)境粤策。幸運(yùn)的是OS X系統(tǒng)默認(rèn)的已經(jīng)可以運(yùn)行Ruby了,因此我們只需要執(zhí)行以下命令:

$ sudo gem install cocoapods
$ pod setup 

① 執(zhí)行完install命令半天沒反應(yīng)

原因是Ruby的默認(rèn)源使用的是cocoapods.org误窖,國內(nèi)訪問這個(gè)網(wǎng)址有時(shí)候會有問題叮盘,請?zhí)鎿Q成Ruby China的源,命令如下:

$ gem sources --remove https://rubygems.org/ 
$ gem sources -a https://gems.ruby-china.org/ 

要想驗(yàn)證是否替換成功了霹俺,可以執(zhí)行:

$ gem sources -l 

正常的輸出是:

*** CURRENT SOURCES *** 
https://gems.ruby-china.org/

② gem版本過老

gem是管理Ruby庫和程序的標(biāo)準(zhǔn)包柔吼,如果它的版本過低也可能導(dǎo)致安裝失敗,解決方案自然是升級gem丙唧,執(zhí)行下述命令即可:

$ sudo gem update --system 

③ pod setup等待時(shí)間太久

pod setup在執(zhí)行時(shí)愈魏,CocoaPods會將托管在https://github.com/CocoaPods/Specs上面的所有項(xiàng)目的Podspec文件更新到~/.cocoapods/目錄下,這個(gè)文件很大艇棕,所有第一次更新會非常慢蝌戒。方法是直接手動下載到本地,操作如下:

$ git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master --progress

使用

<span id = "jump"></span>

創(chuàng)建Podfile文件

在Xcode項(xiàng)目的根目錄下執(zhí)行命令創(chuàng)建Podfile文件,操作如下:

$ pod init

Podfile文件的格式如下:

source 'https://github.com/CocoaPods/Specs'  #源的下載地址

platform :ios, '7.0'                         #支持的ios系統(tǒng)最低版本

pod 'JSONKit', '~> 1.4'                      #第三方庫以及版本號

target 'XBPodSDK' do                         #項(xiàng)目的target
    # use_frameworks!
end

上面的格式比較簡單沼琉,查看更多詳情北苟,請?zhí)D(zhuǎn)到鏈接Podfile介紹

<font color=red>注意:Podfile文件中加入“use_frameworks!”表示打包成framework動態(tài)庫(ios8之前是靜態(tài)庫),如果沒有這個(gè)配置打瘪,則最終打包成.a靜態(tài)庫</font>

安裝依賴庫

Podfile文件創(chuàng)建完成后友鼻,在當(dāng)前的工程目錄下,執(zhí)行命令來安裝依賴庫:

$ pod install

<font color=red>注意:使用CocoaPods生成的.xcworkspace文件來打開工程</font>

更新依賴庫

當(dāng)依賴的第三方庫升級新版本后闺骚,如果Podfile文件指定庫為最新版本或者不指定版本彩扔,都會更新到最新版。

① 全部更新

如果要使Podfile文件中所有的庫都更新到指定版本,需要執(zhí)行命令如下:

$ pod update

<font color=red>注意:用“~>”指定的版本是一個(gè)范圍僻爽,并不是特定版本虫碉,所有會產(chǎn)生誤解(自己指定了版本,為什么pod update會更新到更高的版本)胸梆。為了防止這種情況敦捧,可以使用“<=”來指定版本。</font>

直接執(zhí)行pod update命令碰镜,有時(shí)會比較慢兢卵,這是因?yàn)閜od會更新本地的版本庫,添加參數(shù)可以取消更新版本庫绪颖,如下:

$ pod update --no-repo-update

<font color=red>注意:這種情況需要保證本地版本庫最新秽荤。</font>

② 更新指定庫

如果想只更新某個(gè)依賴庫,可以在pod update后面加上庫名,如下:

$ pod update [LIB_NAME] #庫的名稱

查找第三方庫

如果不知道cocoaPods管理的庫中窃款,是否有想要的庫课兄,可以通過<font color=red>pod search</font>命令進(jìn)行查找,以下是用<font color=red>pod search json</font>查找到的所有可用的庫:

-> JSON (5.0.0)
   JSON made so simple, it hurts
   pod 'JSON', '~> 5.0.0'
   - Homepage: https://github.com/3lvis/JSON
   - Source:   https://github.com/3lvis/JSON.git
   - Versions: 5.0.0, 5.0.0-beta1, 4.0.2, 4.0.1, 4.0.0, 3.1.0, 3.0.0, 2.1.1, 2.1.0, 2.0.0 [master repo]

-> json-parser-swift (0.2.0)
   JSON parser & tokenizer in pure Swift
   pod 'json-parser-swift', '~> 0.2.0'
   - Homepage: https://github.com/webconnex/json-parser-swift
   - Source:   https://github.com/webconnex/json-parser-swift.git
   - Versions: 0.2.0, 0.1.1, 0.1.0, 0.0.2, 0.0.1 [master repo]
   
//... 以下省略若干行

Podfile.lock作用

在開始使用CocoaPods雁乡,執(zhí)行完pod install之后第喳,會生成一個(gè)Podfile.lock文件,每次執(zhí)行pod update也會更新Podfile.lock文件。

作用

Podfile.lock文件最大得用處在于多人開發(fā)踱稍,保證團(tuán)隊(duì)中每個(gè)人使用的依賴庫的版本一致

CocoaPods管理私有庫

創(chuàng)建私有 Spec Repo

Spec Repo介紹

Spec Repo是所有的Pods的一個(gè)索引,就是一個(gè)容器悠抹,所有公開的Pods都在這個(gè)里面珠月,它實(shí)際是一個(gè)遠(yuǎn)端的Git倉庫,當(dāng)你使用了Cocoapods后它會被clone到本地的~/.cocoapods/repos目錄下楔敌,可以進(jìn)入到這個(gè)目錄看到master文件夾就是這個(gè)官方的Spec Repo了啤挎。這個(gè)master目錄的結(jié)構(gòu)是這個(gè)樣子的

.
├── Specs
    └── [SPEC_NAME]
        └── [VERSION]
            └── [SPEC_NAME].podspec
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卵凑,隨后出現(xiàn)的幾起案子庆聘,更是在濱河造成了極大的恐慌,老刑警劉巖勺卢,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伙判,死亡現(xiàn)場離奇詭異,居然都是意外死亡黑忱,警方通過查閱死者的電腦和手機(jī)宴抚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來甫煞,“玉大人菇曲,你說我怎么就攤上這事「Х停” “怎么了常潮?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長楷力。 經(jīng)常有香客問我喊式,道長,這世上最難降的妖魔是什么弥雹? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任垃帅,我火速辦了婚禮,結(jié)果婚禮上剪勿,老公的妹妹穿的比我還像新娘贸诚。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布酱固。 她就那樣靜靜地躺著械念,像睡著了一般。 火紅的嫁衣襯著肌膚如雪运悲。 梳的紋絲不亂的頭發(fā)上龄减,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機(jī)與錄音班眯,去河邊找鬼希停。 笑死,一個(gè)胖子當(dāng)著我的面吹牛署隘,可吹牛的內(nèi)容都是我干的宠能。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼磁餐,長吁一口氣:“原來是場噩夢啊……” “哼违崇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诊霹,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤羞延,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后脾还,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伴箩,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年荠呐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赛蔫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泥张,死狀恐怖呵恢,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情媚创,我是刑警寧澤渗钉,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站钞钙,受9級特大地震影響鳄橘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芒炼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一瘫怜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧本刽,春花似錦鲸湃、人聲如沸赠涮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笋除。三九已至,卻和暖如春炸裆,著一層夾襖步出監(jiān)牢的瞬間垃它,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工烹看, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留国拇,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓惯殊,卻偏偏與公主長得像贝奇,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子靠胜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評論 2 353

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

  • 項(xiàng)目組件化、平臺化是技術(shù)公司的共同目標(biāo)毕源,越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件浪漠,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 21,727評論 0 39
  • CocoaPods 是什么? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開源庫的工具霎褐。CocoaPo...
    朝洋閱讀 25,678評論 3 51
  • Ruby 安裝 要安裝cocospods 首先需要安裝ruby址愿,可以先安裝xcode,再安裝macport 冻璃,最后...
    山天大畜閱讀 1,856評論 0 1
  • 一. CocoaPods的介紹 什么是CocoaPods响谓?CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫...
    輝712閱讀 3,922評論 0 7
  • 我問了身邊的很多人娘纷,“人為什么要活著,生命的意義是什么跋炕?”有人告訴我是欲望赖晶;有人認(rèn)為是恐懼,對死亡的恐懼讓人活著辐烂;...
    拂景閱讀 5,351評論 1 4