iOS項(xiàng)目子工程化(二)創(chuàng)建依賴模塊工程

創(chuàng)建依賴模塊工程

上一篇寫了關(guān)于項(xiàng)目子工程化的基本配置操作毒涧。這一篇將創(chuàng)建依賴模塊工程的一些操作背蟆。

依賴模塊工程

demo git地址
廢話就不多說了矢赁,直接上流程豌研。

一妹田、創(chuàng)建WDProjects_dev.xcworkspace

1、創(chuàng)建一個文件夾WDProjects鹃共,存放所有工程
2鬼佣、在該文件夾下面創(chuàng)建一個WDProjects_dev.xcworkspace文件

創(chuàng)建 xcworkspac
保存

創(chuàng)建完成后,保存在剛才的文件下霜浴。

二晶衷、創(chuàng)建子工程

這里的子工程我是以 framework的形式創(chuàng)建的,分別創(chuàng)建了WDUser阴孟、WDShare兩個子工程晌纫。同樣放在剛才的文件夾路徑下面。

為什么選用framework
.a是一個純二進(jìn)制文件永丝,而.framework中除了有二進(jìn)制文件之外還有頭文件和資源文件锹漱。
.a文件不能直接使用,至少要有.h文件配合慕嚷,.framework文件可以直接使用哥牍。
.a + .h + sourceFile = .framework毕泌。
framework可以是動態(tài)庫,也可以是靜態(tài)庫嗅辣。
所述撼泛,如果是.a的話,資源和頭文件與庫就會很零散澡谭,被弄亂了都不知道愿题;而framework可以很好的把一個所需的文件庫集合在一起。同時(shí)framework既能做動態(tài)庫也能做靜態(tài)庫译暂,在庫類型的切換上有天然的優(yōu)勢抠忘。故而選framework更為友好撩炊。

靜態(tài)庫在程序編譯時(shí)會被鏈接到目標(biāo)代碼中外永,程序運(yùn)行時(shí)將不再需要該靜態(tài)庫,所以靜態(tài)庫是相對于編譯期的拧咳;動態(tài)庫在程序編譯時(shí)并不會被鏈接到目標(biāo)代碼中伯顶,只是在程序運(yùn)行時(shí)才被載入,所以動態(tài)庫是相當(dāng)于運(yùn)行期的骆膝。

靜態(tài)庫在鏈接時(shí)會被完整的復(fù)制到可執(zhí)行文件中祭衩,被多次使用就有多份拷貝;動態(tài)庫在鏈接時(shí)不復(fù)制阅签,程序運(yùn)行時(shí)由系統(tǒng)動態(tài)加載到內(nèi)存掐暮,系統(tǒng)只加載一次,主APP和App Extension之間共享動態(tài)庫政钟,節(jié)省內(nèi)存路克。

靜態(tài)庫沒有自己的獨(dú)立空間,用的是主APP的空間(剛才也說到养交,靜態(tài)庫是在編譯的時(shí)候復(fù)制過去的)精算,所以會有符號重復(fù)的問題,比如庫用了AFN碎连,主工程也用了AFN灰羽,在編譯的時(shí)候就會報(bào)符號重復(fù)的問題;而動態(tài)庫是動態(tài)加載的鱼辙,有自己的獨(dú)立空間廉嚼,所以能內(nèi)置bundle,也不會出現(xiàn)符號重復(fù)的問題

注意: 
動態(tài)庫上架不能帶模擬器版本倒戏,所以上架的時(shí)候不要合并模擬器版本怠噪。
iOS8開始支持動態(tài)庫了,所以動態(tài)庫是能上架的峭梳,請放心使用動態(tài)庫吧舰绘。
如果動態(tài)庫編譯報(bào)錯蹂喻,在SDK的General - Linked Framework and Librarles里點(diǎn)擊“+”號,搜索libSystem并添加進(jìn)去捂寿。

三口四、添加組合

1、打開剛才的WDProjects_dev.xcworkspace 文件秦陋,添加工程到workspace

添加工程

依次添加你想要的工程到WDProjects_dev

2蔓彩、重新打開WDProjects_dev.xcworkspace,會看到基本工程已添加完畢驳概。但是到這里還沒有完成赤嚼,我們的WDProjects為主工程,WDShare顺又、WDUser為子工程更卒,那么假如我們主工程里面要使用子工程里面的類,目前還是不能使用的稚照。

四蹂空、添加依賴關(guān)系

我們讓 主工程WDProjects依賴WDShare、WDUser子工程果录。在主工程里面分別調(diào)用WDShare上枕、WDUser里面的API。

WDShare 依賴WDUser子工程弱恒,在WDShare公里里面調(diào)用 WDUser里面的AIP辨萍。

明確上面的要求后,開始添加依賴關(guān)系返弹。

1锈玉、首先在WDProjects targets里面添加WDShare、WDUser動態(tài)庫琉苇,為主工程編譯使用嘲玫。

添加動態(tài)庫

2、添加完動態(tài)庫后并扇,直接在主工程里面引用

import "WDUserLog.h"

import "WDShareData.h"

會報(bào)錯去团,這是因?yàn)闆]有設(shè)置路徑的問題。

3穷蛹、設(shè)置通配路徑
在主工程 project——>build settings ——>header search paths 設(shè)置路徑$(SRCROOT)/.. 選recursive

header search paths
$(SRCROOT)/.. 選recursive

4土陪、開始使用
現(xiàn)在可以在主工程里面引用
import "WDUserLog.h"
import "WDShareData.h"
愉快的使用子工程的api了。

5肴熏、WDShare 依賴WDUser子工程鬼雀,在WDShare公里里面調(diào)用 WDUser里面的AIP,操作方式同上蛙吏,不用多說了源哩。

結(jié)語:下一篇工程化使用pod集成鞋吉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市励烦,隨后出現(xiàn)的幾起案子谓着,更是在濱河造成了極大的恐慌,老刑警劉巖坛掠,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赊锚,死亡現(xiàn)場離奇詭異,居然都是意外死亡屉栓,警方通過查閱死者的電腦和手機(jī)舷蒲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來友多,“玉大人牲平,你說我怎么就攤上這事∫穆” “怎么了欠拾?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵胰锌,是天一觀的道長骗绕。 經(jīng)常有香客問我,道長资昧,這世上最難降的妖魔是什么酬土? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮格带,結(jié)果婚禮上撤缴,老公的妹妹穿的比我還像新娘。我一直安慰自己叽唱,他們只是感情好屈呕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棺亭,像睡著了一般虎眨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镶摘,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天嗽桩,我揣著相機(jī)與錄音,去河邊找鬼凄敢。 笑死碌冶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的涝缝。 我是一名探鬼主播扑庞,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼譬重,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了罐氨?” 一聲冷哼從身側(cè)響起害幅,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎岂昭,沒想到半個月后以现,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡约啊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年邑遏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恰矩。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡记盒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出外傅,到底是詐尸還是另有隱情纪吮,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布萎胰,位于F島的核電站碾盟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏技竟。R本人自食惡果不足惜冰肴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望榔组。 院中可真熱鬧熙尉,春花似錦、人聲如沸搓扯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锨推。三九已至铅歼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爱态,已是汗流浹背谭贪。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锦担,地道東北人俭识。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像洞渔,于是被迫代替她去往敵國和親套媚。 傳聞我的和親對象是個殘疾皇子缚态,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355