三方庫依賴極大的方便了我們的工程配置與管理
CocoaPods
CocoaPods發(fā)展到現(xiàn)在基本上已經(jīng)是ios開發(fā)的標(biāo)準(zhǔn)依賴工具
我們只需要安裝好pod后在項目中新建一個Podfile文件并且寫入你需要的三方框架,在pod install后即可完成配置,具體使用網(wǎng)上有很多教程,我這里就不多贅述.
Carthage
今天的豬腳出廠了!
那么,有些小猿們可能還不太清楚,這個Carthage它到底是個什么東西!
...讓我們一起來看看
Carthage
英 [?kɑ:θid?] 美 [?kɑrθ?d?]
n.
迦太基(非洲北部燥爷,今突尼斯的奴隸制城邦,腓尼基人所建狠怨,公元146年被羅馬帝國所滅桌硫,見Punic Wars)
網(wǎng)絡(luò)
迦太基古城; 迦太基遺址; 迦太基城
...以上內(nèi)容來自百度翻譯...
Carthage的目標(biāo)是用最簡單的方式來管理Cocoa第三方框架
Carthage也是一個比較好用的三方框架管理工具,原理是自動幫你把工程編譯為Dynamic framework(動態(tài)庫)
,僅支持iOS8以上,相比Cocoa pods對項目更無侵入性
- 你可以使用Homebrew來安裝Carthage
- 安裝完homebrew后執(zhí)行下面命令
$ brew update
$ brew install carthage
在你的工程里創(chuàng)建一個Cartfile
文件 ,并在里面寫上類似下面這句話
github "cwxatlm/MXScrollView"
執(zhí)行
$ carthage update
它會在你的工程目錄里生成一個Carthage的文件夾,里面有幫你自動生成的framework,大多數(shù)說的都是直接把framework拖到工程里就可以使用,但我的貌似這樣直接使用不了,具體的往下看
CocoaChina上有一篇非常好的Carthage入門文章,基本百度Carthage的第一個就是
讓你的項目支持Carthage
什么東西都是開頭難,如同一開始把我想把自己的開源代碼發(fā)布到pods一樣,也是各種查資料,最后成功trunk到pods服務(wù)器,然后自己pod下載傳上去的開源框架然后使用時,那個成就感確實是滿滿的.
那么,怎么樣讓自己的的項目支持Carthage呢,一開始,我也不知道從何入手,然后我又是到處找資料,推酷上的這一篇使用Carthage發(fā)布Framework確實幫了我大忙,讓我知道了該如何入手.
下面是我的實現(xiàn)方法.
讓已有工程支持Carthage
你可以這樣做.
首先,假如你已經(jīng)有一個MyCarthage
項目(該項目管理在Github上)
一般你會有一個頭文件瑰钮,這個頭文件的作用是導(dǎo)入所有需要用到的文件
MyCarthageView.h里面的方法是你要暴露的蓬坡,現(xiàn)在里面有一個方法
- (NSString *)getCarthageSkill
這個方法是你提供給外界調(diào)用的
這個MyCarthage的框架我們已經(jīng)寫好了离斩,下一步就是framework了
創(chuàng)建一個framework
新建一個target
選擇framework,命名為MyCarthageFramework
他會自帶一個MyCarthageFramework.h的文件,這個文件的作用是告訴其他人我們引用了哪些頭文件,我們不要它自動生成的文件,刪除MyCarthageFramework.h
配置你的framework
- 1.選擇你的工程
- 2.選擇framework所在的Target
- 3.選擇Build Phases
- 4.點擊Header左下角的+號把你要暴露的頭文件添加到Public里面(默認(rèn)添加到Project里面,用鼠標(biāo)把它拽過去)
- 5.在Compile source里面添加實現(xiàn)的.m文件
在framework的BuildSettings的Packaging里面,把
Produce Module Name
和Produce Name
改成MyCarthage
- 如果你使用了類別,那么你需要在Build Settings的Linking的Other Linker Flags里加上
-all_load
- 如果你想你的工程支持bitcode,需要在Other C Flags 里加上
-fembed-bitcode
分享你的工程
選擇 Manager Schemes
勾上shared(這樣Carthage就可以編譯你的工程)
到這里,基本上你已經(jīng)成功了,那么我們來驗證一下,我相信到這里你已經(jīng)安裝好了Carthage了(什么?并沒有?...那你先去裝一個先吧...),安裝好Carthage后,我們cd到項目文件夾,運行
$ carthage build --no-skip-current
...
命令運行完成后,你會發(fā)現(xiàn)你的項目文件夾里面多了一個Carthage文件夾
Carthage->Build->iOS->MyCarthage.framework!
各位小伙伴們,我們需要的framework,它就這么出來了,好,下面我們來新建一個工程,測試一下看能否正確運行.
...
新建一個test工程,兩種方式導(dǎo)入
1.
把framework拖進(jìn)去,點擊3個copy,然后導(dǎo)入頭文件
然后在 target->Build Phases ->左上角+號 ->New Copy Files Phase 然后在Copy Files下 Destination選擇Frameworks ->添加你自己的動態(tài)庫 .
我們首先編譯一下,沒報錯
2.
1).還是先把framework拖進(jìn)自己文件夾(如果framework和工程同屬一總文件夾這一步可以省略,拖進(jìn)來復(fù)制主要是保證這個framework不會丟失,如自己的項目使用了Carthage,"Cartahge"文件夾就在工程目錄里,其實不用再拖一遍)
2).在工程目錄目錄下的->General(向下滑動少許)->Embedded Binaries->點左下角+號添加剛才的framework(如果直屬目錄下沒有就點擊Add Other去相應(yīng)目錄下添加)
編譯效果如上一種方式
以上兩種方式也適用于你自己使用Carthage中的framework
ok,我們來運行一下
Good!控制臺成功的打印了我們需要的信息,我們成功了,別慌,要給別人使用的話你還需要最后一步,給你的工程打上tag,push上去(記得要把工程shemes的配置文件也勾上push上去)
例如
$ git tag 1.0.0
$ git push --tags
以上對于創(chuàng)建自己的可共享動態(tài)庫教程已結(jié)束
下面我們來試一試是否成功,
ok,新建一個Cartfile文件,寫上下面這句話,并執(zhí)行carthage update
就可以使用Carthage安裝你的代碼了,是不是迫不及待去試試你自己的了呢
github "cwxatlm/MyCarthageDemo"