權(quán)威CocoaPods使用教程

CocoaPods使用教程

一、什么是CocoaPods

每種語言發(fā)展到一個(gè)階段,就會(huì)出現(xiàn)相應(yīng)的依賴管理工具,例如 Java 語言的 Maven,nodejs 的 npm。隨著 iOS 開發(fā)者的增多,業(yè)界也出現(xiàn)了為 iOS 程序提供依賴管理的工具,它的名字叫做:CocoaPods。

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之前,開發(fā)項(xiàng)目需要用到第三方開源庫的時(shí)候,我們需要

  1. 把開源庫的源代碼復(fù)制到項(xiàng)目中
  2. 添加一些依賴框架和動(dòng)態(tài)庫
  3. 設(shè)置-ObjC,-fno-objc-arc等參數(shù)
  4. 管理他們的更新

在使用CocoaPods后,我們只需要把用到的開源庫放到一個(gè)名為Podfile的文件中,然后執(zhí)行pod install就可以了,Cocoapods就會(huì)自動(dòng)將這些第三方開源庫的源碼下載下來,并且為我們的工程設(shè)置好響應(yīng)的系統(tǒng)依賴和編譯參數(shù)。

三、CocoaPods的原理

CocoaPods的原理是將所有的依賴庫都放到另一個(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的安裝

CocoaPods可以方便地通過Mac自帶的RubyGems安裝。
執(zhí)行命令: sudo gem install cocoapods

五、Cocoapods的使用

隨便以一種方式新建一個(gè)名為Podfile的文件放到你的工程根目錄下(不能寫成別的名字,也可以自己在工程根目錄里面直接新建)

Podfile文件內(nèi)容的格式應(yīng)該如下:

# 代表注釋
# 將下面的注釋打開,注明你的開發(fā)平臺(tái)及版本, ‘9.0’不寫即為最新版本
# platform :ios, '9.0'

target '06-testCocoaPods' do
  # 如果使用swift開始,或者動(dòng)態(tài)庫開發(fā),將下面的注釋打開
  # use_frameworks!
  # 在 do 和 end 中間添加需要導(dǎo)入的庫
    pod 'AFNetworking', '~> 2.5.3' #('~> 2.5.3'為版本號(hào),忽略不寫即為最新版本)
    pod 'SDWebImage' #代表使用最新版本
end

然后在Terminal進(jìn)入工程所在的根目錄(工程根目錄)中執(zhí)行 :

pod install

這樣,AFNetworking和SDWebImage就已經(jīng)下載完成并且設(shè)置好了編譯參數(shù)和依賴,以后使用的時(shí)候切記如下兩點(diǎn):

  1. 從此以后需要使用Cocoapods生成的 .xcworkspace文件來打開工程,而不是使用以前的.xcodeproj文件
  2. 每次更改了Podfile文件,都需要重新執(zhí)行一次pod update命令
查找第三方庫:

你如果不知道 cocoaPods 管理的庫中,是否有你想要的庫,那么你可以通過 pod search 命令進(jìn)行查找,以下是我用 pod search json 查找到的所有可用的庫:

可以在Terminal中輸入:
** pod search AFNetworking **

六、podfilelock

podfilelock

  • Podfile.lock文件最大得用處在于多人開發(fā)。對(duì)于沒有在Podfile中指定Pods依賴庫版本的寫法,如下:
    pod 'SDWebImage'
    該句話用于獲取當(dāng)前SDWebImage這個(gè)Pods依賴庫的最新版本。
  • 當(dāng)團(tuán)隊(duì)中的某個(gè)人執(zhí)行完pod install命令后,生成的Podfile.lock文件就記錄下了當(dāng)時(shí)最新Pods依賴庫的版本,這時(shí)團(tuán)隊(duì)中的其它人check下來這份包含Podfile.lock文件的工程以后,再去執(zhí)行pod install命令時(shí),獲取下來的Pods依賴庫的版本就和最開始用戶獲取到的版本一致。
  • 如果沒有Podfile.lock文件,后續(xù)所有用戶執(zhí)行pod install命令都會(huì)獲取最新版本的SDWebImage,這就有可能造成同一個(gè)團(tuán)隊(duì)使用的依賴庫版本不一致,這對(duì)團(tuán)隊(duì)協(xié)作來說絕對(duì)是個(gè)災(zāi)難!
  • 在這種情況下,如果團(tuán)隊(duì)想使用當(dāng)前最新版本的SDWebImage依賴庫,有兩種方案:
    更改Podfile,使其指向最新版本的SDWebImage依賴庫;
    執(zhí)行pod update命令;
    鑒于Podfile.lock文件對(duì)團(tuán)隊(duì)協(xié)作如此重要,我們需要將它添加到版本管理中。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 項(xiàng)目組件化、平臺(tái)化是技術(shù)公司的共同目標(biāo),越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 22,873評(píng)論 0 39
  • 一. CocoaPods的介紹 什么是CocoaPods?CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫...
    輝712閱讀 4,127評(píng)論 0 7
  • Ruby 安裝 要安裝cocospods 首先需要安裝ruby,可以先安裝xcode,再安裝macport ,最后...
    山天大畜閱讀 2,136評(píng)論 0 1
  • 雨中獨(dú)行 2016-5-7 又是槐花盛開的季節(jié),一串串,一簇簇,雪白濃密,芳香幽遠(yuǎn)。 遠(yuǎn)去的歲月,清晰又朦朧。 夜...
    夕陽在山閱讀 344評(píng)論 0 0
  • 焦點(diǎn)網(wǎng)絡(luò)三期中級(jí)班 翟沖【原創(chuàng)】分享第322天 2017.11.15 前幾天莫名收到網(wǎng)上寄來的小禮物,不是我買...
    春暖花開zc閱讀 230評(píng)論 0 1

友情鏈接更多精彩內(nèi)容