报错处理: [!] The 'Pods-你的项目' target has frameworks with conflicting names: txsoundtouch.xcframework ...

关键词: 原生iOS接入腾讯云-实时音视频-语音聊天室 pod冲突 duplicate symbols 符号冲突 TXSoundtouch.xcframework TXFFmpeg.xcframework.

背景: 最近接手一个社交项目,里面已经做了IM即时通讯,用的是腾讯云,现在新需求是做一个语音聊天室,继续用腾讯云的SDK,按照腾讯的文档做的时候,第一步就卡住了.... 在按照文档添加了TUIVoiceRoom后
pod 'TXAppBasic', :path => "TX/TUIVoiceRoom/TXAppBasic/"  # path 为TXAppBasic.podspec相对于Podfile文件的相对路径
pod 'TUIVoiceRoom', :path => "TX/TUIVoiceRoom/", :subspecs => ["TRTC"]  # path 为TUIVoiceRoom.podspec相对于Podfile文件的相对路径  

pod install,然后报错

[!] The 'Pods-你的项目target' target has frameworks with conflicting names: txsoundtouch.xcframework and txffmpeg.xcframework.

分析处理报错

在搜索引擎上搜报错(无论国内外)大概就是两个结果:
1.同时接入网易云信NIMSDK和NERtGSRK时类似的两个库冲突报错
2.报错相同,也是腾讯云的两个SDK冲突,但是是Flutter版本
个人先尝试参考2的Flutter版本去解决,但是无果.
接着尝试参考1的方法,在Xcode中搜索这两个库
如图:

搜索TXSoundTouch.png
搜索TXFFmpeg.png

同理,如果show in Finder,如图:
show in Finder.png
就是删除调这两个库.删除后你会发现pod install成功了?并没有!
并没有.png

库确实没有冲突了,不过TUIVoiceRoom还有点问题.解决方法cocopods也写明了两种:

  • podfile中增加use_frameworks!
  • 在podfile中,在MJRefresh, MJExtension, TUICore 这三个库后面增加,:modular_headers => true
    经过实测,对于我手头的这个纯OC项目,方法1会带来衍生问题,方法2修改后pod install正常完成.
    pod install正常.png

    然而这一切并没有结束,打开xcode后run项目,继续报错:
    继续报错.png

    这个报错的原因就是duplicate symbols(符号冲突),也就是引入的第三方库有冲突,感觉瞬间回到了问题开头....
    经过腾讯云人工技术支持,工单和腾讯云售后服务群工作人员轮番交流和尝试(然而大部分回复都是把文档列出的问题粘给你,并非专门解决)

我在pods文件层级里发现了一个情况:

pods文档.png

冲突的是TXLiteAVSDK_ProfessionalTXLiteAVSDK_TRTC库,他们中都包含TXFFmpeg.xcframeworkTXSoundTouch.xcframework,其实他们两本来也都是同一个功能的专业版和简略版.问题是,我在podfile中既没有引用TXLiteAVSDK_Professional也没有引用TXLiteAVSDK_TRTC,那为什么pods中会有这两个库呢?其实是因为,有其他库用到了这两个库.
查看podfile:

  • 其中在pod库后增加了:subspecs => ["Professional"]就是它引用了TXLiteAVSDK_Professional库.
  • 而在pod库后增加了:subspecs => ["TRTC"] 就是它引用了TXLiteAVSDK_TRTC库.
    而只有我刚从腾讯文档复制过来TUIVoiceRoom的引入有:subspecs => ["TRTC"] ,也正是这个引入造成了冲突,那么既然TXLiteAVSDK库功能都是相同的,我也可尝试让TUIVoiceRoom去引用Professional库而非文档的TRTC库.
pod 'TUIVoiceRoom', :path => "TX/TUIVoiceRoom/", :subspecs => ["Professional"]  # path 为TUIVoiceRoom.podspec相对于Podfile文件的相对路径

pod install成功,run成功,调用TUIVoiceRoom初始化方法

[[TRTCVoiceRoom sharedInstance] login:LIVE_IM_APPID userId:user.id userSig:[GenerateUserSig genTestUserSig:user.id] callback:^(int code, NSString * _Nonnull message) {
  if (code == 0) {
    NSLog(@"聊天室初始化成功");
  }
}];

初始化成功,如图


初始化成功.png

注意

如果你pods文件夹中TXLiteAVSDK_Professional内如果不含有TXFFmpeg.xcframework和TXSoundTouch.xcframework,那么你run是不成功的,因为少库.所以,你应该在尝试删除冲突库之前,即开始接入的时候,用上面pod语句,而非腾讯云官方文档的pod语句,才会成功.

除此之外

其实打开TUIVoiceRoom.podspec,可以看到他是包含了3个版本的引用,意味着其实你是可以使用Professional或者Enterprise,并非一定用TRTC.
TUIVoiceRoom.podspec.png

个人总结

  • 平时写podfile的时候要注意语句的意思,写完看一遍,这次就是不知道:subspecs => []的意思,只顾着复制粘贴才卡住自己的.而解决问题同样是因为手闲查了下:subspecs => []的意思才启发了灵感.
  • 尽信书则不如无书,引入库要参照着库文档来做,但是也要有自己的判断,文档给出的是通解,但现实情况往往很负责,这个时候要勇敢的试试不按照文档去做,去试试特解
  • 如果引入的库出了问题,去看库本身,去看xxx.podspec文件,多比较前后差异,就有激发处理的灵感.

最后

  • 若有错误,恳请斧正。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容