iOS 端在集成腾讯云视频服务客户端音视频SDK时,与开发者自己工程中的第三方库冲突,导致编译报错。
场景1
编译报dumplicate symbols
错误。
解决办法
一般是因为 other linker flags
设置了-all_load
,去掉这个,只需要设置-ObjC
。
场景2
ffmpeg 和 ijk 相关冲突。
解决办法
全功能专业版和独立播放器版、企业版等版本中都包含有 ffmpeg 和 ijkplayer,如果您的项目中已经包含相关开源库,推荐使用 精简版
或 符号重命名版
。
场景3
工程里面与 TXLiteAVSDK 内部引用的库重复。
解决办法
直接删除本地工程里面重复的库文件。
场景4
工程里面三方库与TXLiteAVSDK有相同的.o文件。
解决办法
这种情况发生在不能直接删除对应的三方库场景,那么可以删除这个三方库里面冲突的.o文件然后重新打包,就不会冲突了。
命令行:
lipo -info libexample.a
如提示fat file
,代表这个包是支持多平台的,需要逐一解包然后重打包。
例如:Architectures in the fat file: libexample.a are: i386 armv7 armv7s x86_64 arm64
那么我们需要重复5次以下步骤。
解包、打包步骤:
mkdir i386
lipo libexample.a -thin i386 -output i386/ libexample-i386.a
cd i386 && ar -t libexample-i386.a
ar xv libexample-i386.a
rm someframework.o
cd .. && ar rcs libexample-i386.a i386/*.o
,可再次输入2-5中的命令检验是否删除成功lipo -create libexample-armv7.a libexample-armv7s.a libexample-i386.a -output libexample-new.a
lipo是管理Fat File的工具, 可以查看cpu架构, 提取特定架构,整合和拆分库文件。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。