一個(gè)“舊”工程的第三方依賴升級(jí)之路

其實(shí)滓侍,這個(gè)項(xiàng)目也就頂多一個(gè)月沒有持續(xù)開發(fā)和維護(hù),當(dāng)時(shí)的開發(fā)環(huán)境是xcode7.2搭配iOS9.2的系統(tǒng)烙样,到昨天的結(jié)果就是:在Xcode7.3.1下各種編譯不通過蝶溶。

首先簡(jiǎn)單介紹一下該項(xiàng)目的情況:工程通過Cocoapods 引入了FMDB,SDWebImage赊时,MJRefresh還有其他一些第三方的lib吨铸,然后工程內(nèi)部又放了第三方供應(yīng)商提供的一個(gè)動(dòng)態(tài)鏈接庫(kù)(暫且叫它A.framework),在Xcode7.2 和Cocoapods v0.38.2下?lián)f(shuō)正常使用祖秒,但到我的Xcode7.3.1 + Cocoapods V1.0.1下诞吱,就報(bào)A.framework錯(cuò)誤。

開始排查錯(cuò)誤竭缝,第一步房维,記得前段時(shí)間遇到一個(gè)問題,是在Cocoapods V1.0.1下pod install后造成的編譯錯(cuò)誤抬纸,所以咙俩,先降級(jí)Cocoapods,降級(jí)到 V0.38.2:

$ gem uninstall cocoapods -v 1.0.1
$ gem install cocoapods -v 0.38.2

(注:這塊如果你安裝了多個(gè)版本的Cocoapods的話,可以通過 pod _0.38.2_ install的方式使用特定版本進(jìn)行install阿趁。)

完成后膜蛔,使用pod install后還是錯(cuò)誤,所以猜測(cè)應(yīng)該跟A.framework本身有關(guān)了脖阵,然后就是與供應(yīng)商聯(lián)系皂股,他們確認(rèn)A.framework在Xcode7.3上有編譯錯(cuò)誤問題并且已經(jīng)更新了framework,然后提供了新的下載鏈接命黔,我就順著鏈接去下載了呜呐,等到解壓后,徹底傻眼了悍募,大版本變化已經(jīng)好幾個(gè)版本蘑辑,接口API都變了,而且A.framework又依賴了FMDB.framework,并且在新的UI GUI里邊坠宴,竟然直接放置了一份SDWebImage和MJRefresh的.a靜態(tài)庫(kù)洋魂,修改的過程逐漸變得有意思起來(lái)。

引入新框架后的工程結(jié)構(gòu)

當(dāng)把新的framework和它的GUI文件拷貝(雖然這種copy的方法很不爽啄踊,但是供應(yīng)商沒有Cocoapods的repo忧设,只能呵呵了)到工程編譯后,必然出現(xiàn)文件沖突的問題颠通,下來(lái)需要一步步解決址晕。

首先,查看代碼后顿锰,去掉了A.framework GUI中的MJRefresh的lib谨垃,因?yàn)樵谖覀兊臉I(yè)務(wù)場(chǎng)景中,A的GUI沒有下拉刷新的需求硼控,直接去掉后刘陶,刪除了GUI中下拉刷新邏輯。

然后牢撼,因?yàn)锳中的FMDB.framework是必須的匙隔,所以,只能從Pods這邊動(dòng)手熏版,刪除了FMDB的聲明纷责,在代碼中,將Native代碼中的FMDB使用的地方的頭文件修改成動(dòng)態(tài)鏈接庫(kù)的引用形式撼短,即:#import <FMDB/FMDatabase.h> ,這樣就解決了FMDB的問題再膳。

最后,SDWebImage的情況類似曲横,但是因?yàn)樵贏的GUI文件中喂柒,本來(lái)就是以代碼形式集成,所以,直接刪除了Pods中的SDWebimage即可灾杰。

整個(gè)修改后的工程文件變成了下邊的依賴:

調(diào)整后的工程結(jié)構(gòu)

交叉依賴的問題蚊丐,就被解決掉了,工程也能被運(yùn)行起來(lái)吭露。

但是問題并沒完吠撮,在工程啟動(dòng)后,直接crash讲竿,log信息只有 XXX/XXXX/XXX/A.framework Reason: image not found, google后是因?yàn)锳.framework同時(shí)集成了OC和Swift兩種動(dòng)態(tài)鏈接庫(kù),需要在工程的Build Settings設(shè)置屬性Embedded Content Contains Swift Code = YES,至此弄屡,工程就妥妥的運(yùn)行起來(lái)题禀。

整個(gè)過程現(xiàn)在來(lái)講比較清晰,但是剛開始接手代碼時(shí)膀捷,沒有準(zhǔn)備思路的時(shí)候迈嘹,就像蒼蠅一樣亂撞,等到真正排查出來(lái)問題的時(shí)候全庸,思路才逐漸清晰起來(lái)秀仲,希望這篇文檔對(duì)大家能夠起到一些開闊思路的作用,還記得之前說(shuō)道的A.framework GUI和API更新的問題么壶笼,我要?dú)g快的去埋這個(gè)坑去了~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末神僵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子覆劈,更是在濱河造成了極大的恐慌保礼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件责语,死亡現(xiàn)場(chǎng)離奇詭異炮障,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)坤候,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門胁赢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人白筹,你說(shuō)我怎么就攤上這事智末。” “怎么了遍蟋?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵吹害,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我虚青,道長(zhǎng)它呀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮纵穿,結(jié)果婚禮上下隧,老公的妹妹穿的比我還像新娘。我一直安慰自己谓媒,他們只是感情好淆院,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著句惯,像睡著了一般土辩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抢野,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天拷淘,我揣著相機(jī)與錄音,去河邊找鬼指孤。 笑死启涯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恃轩。 我是一名探鬼主播结洼,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼叉跛!你這毒婦竟也來(lái)了松忍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤昧互,失蹤者是張志新(化名)和其女友劉穎挽铁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敞掘,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡叽掘,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了玖雁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片更扁。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖赫冬,靈堂內(nèi)的尸體忽然破棺而出跷乐,到底是詐尸還是另有隱情子寓,我是刑警寧澤咬荷,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布刽射,位于F島的核電站,受9級(jí)特大地震影響补鼻,放射性物質(zhì)發(fā)生泄漏哄啄。R本人自食惡果不足惜雅任,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望咨跌。 院中可真熱鬧沪么,春花似錦、人聲如沸锌半。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)刊殉。三九已至殉摔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間冗澈,已是汗流浹背钦勘。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亚亲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓腐缤,卻偏偏與公主長(zhǎng)得像捌归,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子岭粤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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