最近在做一個支付功能诫给,用到移動的和包支付屑柔,微信支付沉帮,銀聯(lián)支付锈死。但是和包支付的SDK里已經(jīng)包含了微信支付的SDK(我也不知道這是什么想法),我把微信原生的SDK放入工程中以后穆壕,立馬報錯待牵。因為很多.o文件重復(fù)了,所以需要把和包里的重復(fù)文件去掉喇勋。
duplicatesymbol_OBJC_METACLASS_$
上網(wǎng)搜索了一些資料缨该,然后總結(jié)了一下步驟:
1、打開終端川背,直接輸入
cd ~/ && mkdir librepack && cd librepack
2贰拿、把項目中的引發(fā)沖突的.a文件拷貝一份出來蛤袒,/Users/momo/Desktop/SVN/Payment/Payment/ipos是文件路徑。
cp /Users/momo/Desktop/SVN/Payment/Payment/ipos/libiPosLib.a ./libx.a
3膨更、查看包信息
lipo -info libx.a
結(jié)果:此SDK支持armv7,arm64
4妙真、分平臺逐步做以下步驟
4.1、創(chuàng)建臨時文件夾荚守,用于存放armv7平臺解壓后的.o文件:
mkdir armv7
4.2珍德、取出armv7平臺的包
lipo libx.a -thin armv7 -output armv7/libx-armv7.a
4.3、查看庫中所包含的文件列表
ar -t armv7/libx-armv7.a
4.4矗漾、解壓出object file(即.o后綴文件)
cd armv7 && ar xv libx-armv7.a
4.5锈候、找到?jīng)_突的包(JSONKit),刪除掉(此步可以多次操作)
rm WapAuthHandler.o
4.6敞贡、重新打包object file
cd .. && ar rcs libx-armv7.a armv7/*.o
5泵琳、多平臺的SDK的話,需要多次操作第4步誊役。操作完成后获列,合并多個平臺的文件為一個.a文件
lipo -create libx-armv7.a libx-arm64.a -output libiPosLib-new.a
6、拷貝到項目中覆蓋源文件:
cp libiPosLib-new.a /Users/momo/Desktop/SVN/Payment/Payment/ipos/libiPosLib.a
PS:每步嚴格按照步驟來做势木,唯一能該更改的內(nèi)容是armv7,armv7s,arm64蛛倦。