可能有很多小伙伴還不太清楚,動靜態庫的開發,這里推薦一篇博客: 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
-
將修改好的文件, 拖拽到原文件夾下,替換原文件即可。