CocoaPods詳解2:基本功能結(jié)構(gòu)

一:CocoaPods介紹

CocoaPods將所有依賴的庫都放在一個名為Pods的項目下,然后讓主項目依賴Pods項目。然后芥永,我們編碼工作都從主項目轉(zhuǎn)移到Pods項目Pods項目最終會編譯為一個libPod-項目名.a靜態(tài)庫钝吮,主項目依賴于這個靜態(tài)庫埋涧。
對于資源文件,CocoaPods 提供了一個名為Pods-resources.shbash腳本奇瘦,該腳本在每次項目編譯的時候都會執(zhí)行棘催,將第三方庫的各種資源文件復制到目標目錄中。

CocoaPods 通過一個名為Pods.xcconfig 的文件來在編譯時設置所有的依賴和參數(shù)链患。

CocoaPods是用Ruby 寫的巧鸭,并由若干個 Ruby 包 (gems) 構(gòu)成的。在解析整合過程中麻捻,最重要的幾個gems分別是: CocoaPods/CocoaPods, CocoaPods/Core, 和 CocoaPods/Xcodeproj纲仍。

二:CocoaPod的核心組件

  • CocoaPods/CocoaPod: 面向用戶的組件,每當執(zhí)行一個pod 命令時贸毕,這個組件都將被激活郑叠。該組件包括了所有使用CocoaPods 涉及到的功能,并且還能通過調(diào)用所有其它的 gems 來執(zhí)行任務明棍。
  • CocoaPods/Core: Core組件提供支持與 CocoaPods 相關(guān)文件的處理乡革,文件主要是 Podfilepodspecs
  • Podfile
    Podfile是一個文件,用于定義項目所需要使用的第三方庫沸版。該文件支持高度定制嘁傀,你可以根據(jù)個人喜好對其做出定制。更多相關(guān)信息视粮,請查閱 Podfile指南细办。
  • Podspec: .podspec 也是一個文件,該文件描述了一個庫是怎樣被添加到工程中的蕾殴。它支持的功能有:列出源文件笑撞、framework編譯選項某個庫所需要的依賴等钓觉。
  • CocoaPods/Xcodeproj: 這個 gem 組件負責所有工程文件的整合茴肥。它能夠創(chuàng)建并修改 .xcodeproj.xcworkspace文件。它也可以作為單獨的一個gem包使用荡灾。如果你想要寫一個腳本來方便地修改工程文件瓤狐,那么可以使用這個gem

三:多target時Podfile該如何寫卧晓?

使用Ruby語法芬首,定義不同的分組赴捞,然后不同的target可以自由選擇依賴哪些分組逼裆,這種方式看起來更簡潔,對于多target的項目來說也更友好:

platform :ios, '8.0'

def commonPods #通用pods集
    pod 'AFNetworking', '~> 2.0'
    pod 'Masonry'
end

def appOnlyPods #app專用pods集
    pod 'MBProgressHUD'
end

def extensionPods #擴展專用pods集
    pod 'GTSDKExtension'
end

target :TestCocoaPods do
    commonPods
    appOnlyPods

    target :TestCocoaPodsTests do
    inherit! :search_paths
    # Pods for testing
    end

    target :TestCocoaPodsUITests do
        inherit! :search_paths
        # Pods for testing
    end
end

target :SecondTarget do
    commonPods
end

四: 如何忽略Pods警告赦政?

有些第三方Pod集成進來會有一大堆警告信息胜宇,如果你看著比較難受想把它忽略的話,在Podfile中對應的target或分組下加上關(guān)鍵字inhibit_all_warnings即可恢着。

五:如何直接引用第三方庫中的頭文件桐愉?

在用CocoaPods集成第三方庫之后,默認情況下掰派,我們需要使用類似#import <XXX/YYY.h>的方式引入第三方庫的頭文件从诲。我們可以在Build Settings -> User Header Search Paths中添加${SRCROOT}并設置成recursive,這樣我們就可以直接使用#impot "YYY.h"這種方式了靡羡。

六: pod install 和 pod update

  • pod install:在Podfile中用于安裝系洛,新增,刪除pod的命令略步。
    【1描扯,當我們第一次運行Podfile時,如果對依賴庫不指定版本的話趟薄,cocoapods會安裝最新的版本绽诚,同時將pods的版本記錄在Podfile.lock文件中,此文件會保持對每個pod已安裝版本的跟蹤,并且鎖定這些版本恩够。
    2卒落,再執(zhí)行pod install的話,只會處理沒有記錄在Podfile.lock中的依賴庫蜂桶,會查找匹配Podfile中描述的版本导绷。
    3,當然屎飘,如果你約束了pods的版本的話妥曲,會按照你指定的版本進行安裝,同時也會更新Podfile.lock記錄的信息钦购¢苊耍】
  • pod update :命令僅用在更新指定pod版本,或者更新所有pod押桃。
    【推薦用法:pod update 要更新庫的名字
    這個命令會忽略Podfile.lock中的記錄葵萎,直接去找符合Podfile文件中的該依賴庫的約束版本(無約束的話就是最新版本)】
    在Podfile中添加新的pod后應該用pod install命令,而不是pod update命令唱凯。

注釋:盡量不要用pod update羡忘,因為它是全部檢查一遍,不僅慢有時候還會出現(xiàn)坑磕昼。上個版本好好的卷雕,下個版本跟新一堆,可能會報錯或者依賴的其他第三方有所沖突票从,兼容等漫雕。。峰鄙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浸间,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子吟榴,更是在濱河造成了極大的恐慌魁蒜,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吩翻,死亡現(xiàn)場離奇詭異兜看,居然都是意外死亡,警方通過查閱死者的電腦和手機仿野,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門铣减,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人脚作,你說我怎么就攤上這事葫哗〉奚玻” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵劣针,是天一觀的道長校镐。 經(jīng)常有香客問我,道長捺典,這世上最難降的妖魔是什么鸟廓? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮襟己,結(jié)果婚禮上引谜,老公的妹妹穿的比我還像新娘。我一直安慰自己擎浴,他們只是感情好员咽,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贮预,像睡著了一般贝室。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仿吞,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天滑频,我揣著相機與錄音,去河邊找鬼唤冈。 笑死峡迷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的务傲。 我是一名探鬼主播凉当,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼枣申,長吁一口氣:“原來是場噩夢啊……” “哼售葡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起忠藤,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤挟伙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后模孩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尖阔,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年榨咐,在試婚紗的時候發(fā)現(xiàn)自己被綠了介却。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡块茁,死狀恐怖齿坷,靈堂內(nèi)的尸體忽然破棺而出桂肌,到底是詐尸還是另有隱情,我是刑警寧澤永淌,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布崎场,位于F島的核電站,受9級特大地震影響遂蛀,放射性物質(zhì)發(fā)生泄漏谭跨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一李滴、第九天 我趴在偏房一處隱蔽的房頂上張望螃宙。 院中可真熱鬧,春花似錦所坯、人聲如沸污呼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽燕酷。三九已至,卻和暖如春周瞎,著一層夾襖步出監(jiān)牢的瞬間苗缩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工声诸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留酱讶,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓彼乌,卻偏偏與公主長得像泻肯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子慰照,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

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