项目里文件liblibWeex.a
库引用了SDWebImage
的文件,但是项目其他库也有使用到该库,冲突了!
解决方案
1、拆分liblibWeex.a 为四个liblibWeex_arm64.a
liblibWeex_i386.a
liblibWeex_armv7.a
liblibWeex_x86_64.a
强烈建议四个操作分开文件进行,这里拆分成 四个 .a
文件的前提是原来的.a
本身就支持上面四个架构版本:
查看.a
支持架构
lipo -info 路径
例如:
lipo -info /Users/qing/Desktop/HelloSDK.framework/HelloSDK
lipo liblibWeex.a -thin arm64 -output liblibWeex_arm64.a
lipo liblibWeex.a -thin armv7 -output liblibWeex_armv7.a
lipo liblibWeex.a -thin i386 -output liblibWeex_i386.a
lipo liblibWeex.a -thin x86_64 -output liblibWeex_x86_64.a
建议创建4个文件夹,这里分别命名为:arm64
、armv7
、i386
、x86
。
2、cd到对应文件夹内,把拆分的.a
文件再拆分成.o
文件(分开文件夹进行)
ar -x liblibWeex_arm64.a
ar -x liblibWeex_armv7.a
ar -x liblibWeex_i386.a
ar -x liblibWeex_x86_64.a
拆分完成之后可以看到文件夹内多了很多.o
的文件了
![](https://img.haomeiwen.com/i1350722/df6b425c10421562.png)
3、删掉冲突文件,这里删掉的文件较多,对比着SDWebImage
进行删除!为了避免删错了,建议对照着SDWebImage
库进行删除。
这里删掉的文件为:
UIImage+GIF.o
UIButton+WebCache.o
UIImage+MultiFormat.o
UIImageView+HighlightedWebCache.o
UIImageView+WebCache.o
UIView+WebCacheOperation.o
SDImageCache.o
SDWebImageCompat.o
SDWebImageDecoder.o
SDWebImageDownloader.o
SDWebImageDownloaderOperation.o
SDWebImageManager.o
SDWebImagePrefetcher.o
NSData+ImageContentType.o
4、将删掉冲突文件的.o
文件合并:
libtool -static -o ../liblibWeex_arm64.a *.o
libtool -static -o ../liblibWeex_armv7.a *.o
libtool -static -o ../liblibWeex_i386.a *.o
libtool -static -o ../liblibWeex_x86_64.a *.o
![](https://img.haomeiwen.com/i1350722/ffe06234b94bceea.png)
5、将生成的.a
文件合并成最初的.a
文件
lipo -create -output liblibWeex.a liblibWeex_arm64.a liblibWeex_i386.a liblibWeex_armv7.a liblibWeex_x86_64.a
网友评论