1.為何要使用管理工具管理項(xiàng)目的依賴關(guān)系
我們?cè)陂_發(fā)過程中會(huì)用到(依賴于)其他第三方庫(kù)裳涛,這些庫(kù)或框架還有可能依賴于其他庫(kù)或者框架木张,手動(dòng)管理這些庫(kù)或者框架非常麻煩,首先我們需要下載這些庫(kù)或者框架端三,然后還要考慮版本兼容性問題舷礼,需要手動(dòng)導(dǎo)入一些依賴包,還好有CocoaPods和Carthage工具管理項(xiàng)目依賴關(guān)系郊闯。
2.使用CocoaPods工具管理依賴
CocoaPods是非常好用的第三方依賴管理工具妻献,它于2011年發(fā)布蛛株,經(jīng)過這幾年的發(fā)展,已經(jīng)非常完善育拨。CocoaPods支持項(xiàng)目中采用Objective-C或swift語(yǔ)言谨履。CocoaPods會(huì)將第三方庫(kù)的源代碼編譯為靜態(tài)庫(kù).a文件或者動(dòng)態(tài)框架.framework文件的形式,并將它們添加到項(xiàng)目中熬丧,建立依賴關(guān)系笋粟。
使用方法
pod search MBProgressHUD
或者進(jìn)入CocoaPods 官網(wǎng)https://cocoapods.org/,輸入第三方庫(kù)名稱析蝴,可以便捷的查看相應(yīng)庫(kù)的使用方法矗钟。
Carthage工具
CocoaPods是一個(gè)非常棒的工具,但我們還有另外一個(gè)選擇——Carthage,它是一個(gè)輕量級(jí)的項(xiàng)目依賴管理工具嫌变。Carthage主張“去中心化”和“非侵入性”吨艇。
CocoaPods搭建了一個(gè)中心庫(kù),第三方庫(kù)被收入到該中心庫(kù)腾啥,所以沒有收錄的第三方庫(kù)是不能使用CocoaPods管理的东涡,這就是所謂的”中心化“思想。而Carthage沒有這樣的中心庫(kù)倘待,第三方庫(kù)基本上都是從GitHub或者私有g(shù)it庫(kù)中下載的疮跑,這就是“去中心化”。
另外凸舵,CocoaPods下載第三方庫(kù)后祖娘,會(huì)將其編譯成靜態(tài)鏈接庫(kù)或者動(dòng)態(tài)框架文件,這種做法會(huì)修改Xcode項(xiàng)目屬性配置依賴關(guān)系啊奄,這就是所謂的”侵入性“渐苏。而Carthage下載成功后,會(huì)將第三方庫(kù)編譯為動(dòng)態(tài)框架菇夸,由開發(fā)人員自己配置依賴關(guān)系琼富,Carthage不會(huì)修改Xcode項(xiàng)目屬性,這就是所謂的”非侵入性“庄新。
Carthage安裝
第一種是在https://github.com/Carthage/Carthage/releases 網(wǎng)站下載已經(jīng)編譯好的安裝包Carthage.pkg,然后進(jìn)行安裝鞠眉。
第二種是通過Homebrew工具進(jìn)行安裝。Homebrew是用來管理OS X系統(tǒng)下安裝包的工具择诈,使用非常之便利械蹋。下面主要介紹第二種。
第一步:打開終端:
brew list
第二步:如果沒有安裝Homebrew工具羞芍,終端會(huì)提示brew命令無法執(zhí)行小染,然后執(zhí)行如下指令安裝homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
第三步:執(zhí)行如下指令,安裝Carthage
brew install carthage
第四步:執(zhí)行如下指令芋绸,查詢Carthage是否安裝成功
brew list //如果出現(xiàn)carthage牙肝,說明安裝成功
Carthage使用
第一步:終端輸入如下指令:
cd /Users/admin/Desktop/exercise/Carthage (cd后面的是你創(chuàng)建工程的路徑,直接將工程拖到終端中即可自動(dòng)生成)
第二步:與cocoapods一樣饺律,Carthage同樣需要一個(gè)類似podfile文件,我們可以命名為Cartfile(這里的名字可以任意命名)卡乾,然后終端輸入如下指令酣胀,進(jìn)入該文件中:
vim Cartfile
第三步:進(jìn)入Cartfile文件后與cocoapods的使用方式一樣,輸入i全度,進(jìn)入編輯模式煮剧,然后執(zhí)行下面的指令,輸入wq:進(jìn)行保存将鸵,然后就退出Cartfile文件了:
github "https://github.com/AFNetworking/AFNetworking.git"
或者 github "AFNetworking / AFNetworking" "master"
(ps:二者任選其一即可勉盅,如果采用第二種方式,指定的依賴庫(kù)一般為github上的"用戶名/項(xiàng)目名"顶掉,如果不是很確定名稱草娜,可以輸入第三方的名稱,到github上確認(rèn)即可痒筒,使用第一種方式其實(shí)是項(xiàng)目的下載鏈接宰闰,同樣,如果不是很確定簿透,可以到github上復(fù)制粘貼下來即可)
和Podfile類似移袍,在Carthage文件中也可以指定依賴庫(kù)的版本
~>3.0 表示大于等于3.0版本,小于下一個(gè)主版本老充,即4.0版本
>=3.0 表示大于等于3.0版本
==3.0 表示等于3.0版本
第四步:終端輸入如下指令葡盗,下載文件
carthage update --platform iOS
第五步:執(zhí)行完上面的操作后,打開項(xiàng)目啡浊,會(huì)發(fā)現(xiàn)項(xiàng)目中多了一個(gè)Carthage文件夾觅够,在它下面又有倆個(gè)子文件夾Build和Checkouts,
Build目錄中存放編譯好的framework文件,
Checkouts目錄是下載的第三方庫(kù)源代碼
點(diǎn)擊Add Other,找到需要添加的庫(kù)依次導(dǎo)入即可,這里需要導(dǎo)入的庫(kù)是AFNetworking.framework涂籽。
第六步:選擇Build phases ,點(diǎn)擊左上角的加號(hào)苹祟,如下圖:
選擇 New Run Script phase ,在Run Script部分的腳本區(qū)域輸入:
/usr/local/bin/carthage copy-frameworks
然后將路徑添加到 Input Files中:
$(SRCROOT)/Carthage/Build/iOS/AFNetworking.framework
最終效果圖如下:編譯工程即可。