iOS解決兩個靜態(tài)庫(.framework或.a)中.o文件沖突

項目中使用到TXLiteAVSDK_UGC.framework(騰訊短視頻)和BaiduMapAPI_Map.framework(百度地圖)中的兩個.o文件有沖突, 查了資料通過拆分TXLiteAVSDK_UGC.framework刪除其中沖突的.o文件,然后重新生成靜態(tài)庫, 解決了問題.
Snip20181205_7.png

步驟如下:

  1. 新建一個文件夾resolveConflict, 將TXLiteAVSDK_UGC.framework復(fù)制到resolveConflict文件夾內(nèi).TXLiteAVSDK_UGC.framework內(nèi)容如圖, TXLiteAVSDK_UGC就是我們要拆分的文件


    Snip20181205_6.png
  1. 打開終端, cd到TXLiteAVSDK_UGC.framework下, 執(zhí)行
$ lipo -info TXLiteAVSDK_UGC

終端會顯示該庫包含的cpu架構(gòu)

Architectures in the fat file: TXLiteAVSDK_UGC are: armv7 i386 x86_64 arm64

這里介紹一下各類設(shè)備對應(yīng)的cpu架構(gòu)
模擬器包含的cpu架構(gòu):
iPhone 4s – iPhone 5 : i386
iPhone SE : x86_84
iPhone5s – iPhone 7 Plus : x86_64
真機設(shè)備包含的cpu架構(gòu)
iPhone 3g – iPhone 4s : armv7
iPhone 5 – iPhone 5c : armv7s
iPhone SE : arm64
iPhone 5s – iPhone 7 Plus : arm64
只要支持了armv7就不用再支持armv7s

3 . 執(zhí)行如下命令, 從TXLiteAVSDK_UGC中拆分出arm64架構(gòu)對應(yīng)的.a庫并命名為TXLiteAVSDK_UGC_arm64.a

$ lipo TXLiteAVSDK_UGC -thin arm64 -output TXLiteAVSDK_UGC_arm64.a

然后同樣的方法修改架構(gòu)名拆分出其他3種cpu架構(gòu)對應(yīng)的.a庫, 拆分完如下圖

$ lipo TXLiteAVSDK_UGC -thin armv7 -output TXLiteAVSDK_UGC_armv7.a
$ lipo TXLiteAVSDK_UGC -thin i386 -output TXLiteAVSDK_UGC_i386.a
$ lipo TXLiteAVSDK_UGC -thin x86_64 -output TXLiteAVSDK_UGC_x86_64.a
Snip20181205_5.png
  1. 將各個.a庫拆分.o文件.最好每個架構(gòu)的.a庫都放到一個獨立的文件夾中拆分, 不然4個架構(gòu)的.a庫拆分后所有的.o文件混在一起就亂了

在TXLiteAVSDK_UGC.framework根目錄新建文件夾名為arm64, 將TXLiteAVSDK_UGC_arm64.a拖進該文件夾, 然后cd到arm64文件夾, 執(zhí)行如下命令

$ ar -x TXLiteAVSDK_UGC_arm64.a
Snip20181205_3.png

這樣TXLiteAVSDK_UGC_arm64.a就被拆分成很多的.o文件. 在里面找到造成沖突的.o文件刪除掉. 從第一張圖的錯誤信息可以看出是gmm_gmr.o文件有沖突, 所以就把這個文件刪了


![Snip20181205_1.png](https://upload-images.jianshu.io/upload_images/3962148-f36479b46f0274a6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

第一張圖中的錯誤信息里顯示的只有arm64架構(gòu)有沖突, 因為我是用真機測試的, 前面也介紹了各類設(shè)備對應(yīng)的cpu架構(gòu), 所以要在模擬器或是其他設(shè)備上也能正常運行, 就需要把其他3個cpu架構(gòu)的.a庫重復(fù)這一步進行拆分并刪除其中沖突的.o文件

  1. 然后就是把拆分后的文件重新生成.framework靜態(tài)庫. 在arm64文件夾里執(zhí)行如下命令
$ libtool -static -o ../TXLiteAVSDK_UGC_arm64.a *.o

生成了一個新的arm64架構(gòu)的.a庫. 切換文件夾并重復(fù)該命令將被拆分的其他cpu架構(gòu)的庫重新生成.

  1. 將所有cpu架構(gòu)的.a庫進行合并. 需要先把TXLiteAVSDK_UGC文件刪除掉, 因為合并之后的文件最好跟之前名字一樣, 不影響正常使用. 刪掉TXLiteAVSDK_UGC之后執(zhí)行如下命令
$ lipo -create -output TXLiteAVSDK_UGC TXLiteAVSDK_UGC_arm64.a TXLiteAVSDK_UGC_armv7.a TXLiteAVSDK_UGC_i386.a TXLiteAVSDK_UGC_x86_64.a

這樣就把4個.a庫合并成了名為TXLiteAVSDK_UGC的文件

  1. 最后恢復(fù)到第一步圖中的結(jié)構(gòu), 把多余的文件都刪掉就完成了 . 把新的TXLiteAVSDK_UGC.framework放到項目中, 再次運行就不會沖突了.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蔽午,一起剝皮案震驚了整個濱河市廷痘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌典徘,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贵扰,死亡現(xiàn)場離奇詭異瞭恰,居然都是意外死亡,警方通過查閱死者的電腦和手機抄谐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扰法,“玉大人蛹含,你說我怎么就攤上這事∪洌” “怎么了浦箱?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長祠锣。 經(jīng)常有香客問我憎茂,道長,這世上最難降的妖魔是什么锤岸? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任竖幔,我火速辦了婚禮,結(jié)果婚禮上是偷,老公的妹妹穿的比我還像新娘拳氢。我一直安慰自己,他們只是感情好蛋铆,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布馋评。 她就那樣靜靜地躺著,像睡著了一般刺啦。 火紅的嫁衣襯著肌膚如雪留特。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機與錄音蜕青,去河邊找鬼苟蹈。 笑死,一個胖子當著我的面吹牛右核,可吹牛的內(nèi)容都是我干的慧脱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼贺喝,長吁一口氣:“原來是場噩夢啊……” “哼菱鸥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起躏鱼,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤氮采,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后染苛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鹊漠,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年殖侵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镰烧。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡拢军,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出怔鳖,到底是詐尸還是另有隱情茉唉,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布结执,位于F島的核電站度陆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏献幔。R本人自食惡果不足惜懂傀,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜡感。 院中可真熱鬧蹬蚁,春花似錦、人聲如沸郑兴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽情连。三九已至叽粹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背虫几。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工锤灿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人持钉。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓衡招,卻偏偏與公主長得像,于是被迫代替她去往敵國和親每强。 傳聞我的和親對象是個殘疾皇子始腾,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

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