iOS開發(fā)中兩個.framework文件中.o文件沖突的問題

項目中使用到XYPrinter.framework和Printer.framework中的兩個.o文件有沖突, 查了資料通過拆分XYPrinter.framework刪除其中沖突的.o文件,然后重新生成靜態(tài)庫, 解決了問題.
error.png

步驟如下:

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

    image
  2. 打開終端, cd到XYPrinter.framework下, 執(zhí)行

$ lipo -info XYPrinter

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

Architectures in the fat file: XYPrinter 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í)行如下命令, 從XYPrinter中拆分出arm64架構(gòu)對應(yīng)的.a庫并命名為XYPrinter_arm64.a

$ lipo XYPrinter -thin arm64 -output XYPrinter_arm64.a

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

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

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

$ ar -x XYPrinter_arm64.a

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

第一張圖中的錯誤信息里顯示的只有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 ../XYPrinter_arm64.a *.o

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

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

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

  1. 最后恢復(fù)到第一步圖中的結(jié)構(gòu), 把多余的文件都刪掉就完成了 . 把新的XYPrinter.framework放到項目中, 再次運行就不會沖突了.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子栗柒,更是在濱河造成了極大的恐慌,老刑警劉巖疏魏,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窜觉,死亡現(xiàn)場離奇詭異,居然都是意外死亡剪芥,警方通過查閱死者的電腦和手機壕鹉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門剃幌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晾浴,你說我怎么就攤上這事负乡。” “怎么了脊凰?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵抖棘,是天一觀的道長。 經(jīng)常有香客問我狸涌,道長切省,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任帕胆,我火速辦了婚禮朝捆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘懒豹。我一直安慰自己芙盘,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布脸秽。 她就那樣靜靜地躺著儒老,像睡著了一般。 火紅的嫁衣襯著肌膚如雪记餐。 梳的紋絲不亂的頭發(fā)上驮樊,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音,去河邊找鬼囚衔。 笑死铝穷,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的佳魔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼晦炊,長吁一口氣:“原來是場噩夢啊……” “哼鞠鲜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起断国,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤贤姆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后稳衬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體霞捡,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年薄疚,在試婚紗的時候發(fā)現(xiàn)自己被綠了碧信。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡街夭,死狀恐怖砰碴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情板丽,我是刑警寧澤呈枉,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站埃碱,受9級特大地震影響猖辫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜砚殿,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一啃憎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓮具,春花似錦荧飞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至传睹,卻和暖如春耳幢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工睛藻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留启上,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓店印,卻偏偏與公主長得像冈在,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子按摘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

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