問題 ? iOS ? 多個(gè).a文件 ?包含了相同的類文件 ?假設(shè)是AA.a文件和BB.a文件
報(bào)錯(cuò) ?duplicate symbol _xxx in
解決方法
步驟1官还、將AA.a包分別按照不同的架構(gòu)(armv7蒋譬、armv7s、arm64)得到對(duì)應(yīng)的瘦身后的.a庫文件
lipo AA.a -thin arm64 -output AA-arm64.a
步驟2夺克、按照不同架構(gòu)中的某個(gè)架構(gòu)的.a解壓 ? ?新建文件夾cd到對(duì)應(yīng)的文件夾后解壓上級(jí)目錄下上個(gè)步驟得到的.a庫文件會(huì)得到.o的目標(biāo)文件
ar -x ../AA-arm64.a
步驟3掏导、重復(fù)上面兩步把BB.a ?文件也按照不同的架構(gòu)解壓资盅,在不同文件夾下面得到對(duì)應(yīng)的.o的目標(biāo)文件
步驟4晴股、把AA-arm64.a和BB-arm64.a架構(gòu)瘦身解壓后得到的.o文件 ?進(jìn)行合并(全選其中一個(gè)文件夾愿伴,復(fù)制到另一個(gè)區(qū) ? 肯定會(huì)有相同的.o文件)
步驟5、把合并后的.o文件夾里面的所有文件生成新的.a文件(這是就可以測試了电湘,上述步驟沒有問題的話就可以用5s以上的機(jī)型跑了)
libtool -static -o ../new-arm64.a *.o
步驟6隔节、合并步驟5得到的不同架構(gòu)下面的新的.a文件 ?(最后使用new.a ? 把a(bǔ)rmv7鹅经、armv7s、arm64怎诫、i386都進(jìn)行合并)
lipo -create new-arm64.a ?new-armv7.a ?-output new.a