可能有很多小伙伴还不太清楚,动静态库的开发,这里推荐一篇博客: iOS-制作.a静态库SDK和使用.a静态库
如果我们存在三方库冲突就会保存:duplicate symbol _OBJC_IVAR_$_xxxx in:
目前见效最快的就是把.framework选中,taggert Membership的对勾取消掉,就编译没有问题了,但是后续的其他问题可能还会出现
我想说的是像这种开源的使用率很高的源代码本不应该包含在lib库中,就算是你要包含那也要改个名字是吧。不过没办法现在人家既然包含,我们就只有想办法分离了
-
mkdir armv7:创建临时文件夹
-
lipo libALMovie.a -thin armv7 -output armv7/armv7.a:取出armv7平台的包
-
ar -t armv7/armv7.a:查看库中所包含的文件列表
-
cd armv7 && ar xv armv7.a:解压出object file(即.o后缀文件)
-
rm ALButton.o:找到冲突的包,删除掉(此步可以多次操作)
-
cd … && ar rcs armv7.a armv7/*.o:重新打包object file
-
多平台的SDK的话,需要多次操作第4步。操作完成后,合并多个平台的文件为一个.a文件:lipo -create armv7.a arm64.a -output new.a
-
将修改好的文件, 拖拽到原文件夹下,替换原文件即可。