软件测试之SDK开发——[!] The 'Pods-XXX' target has frameworks with conflicting names: masonry.framework.

本文探讨了在iOS开发中,使用CocoaPods时遇到的框架命名冲突问题:The'Pods-XXX'targethasframeworkswithconflictingnames。分析了不同情况下masonry.framework的使用是否会导致错误,并提出了五种解决方案,包括重构代码和修改前缀等。

出现 The 'Pods-XXX' target has frameworks with conflicting names这个错误,是因为工程里同时pod了两个相同名字的framework,最简单的方式是只pod一个。但是这通常是理想情况。
我的SDK依赖第三方动态库masonry.framework用来布局界面。直接依赖第三方库有一个好处就是不需要修改和维护第三方库。并且对于大多数情况都适用。
1、app中以framework形式存在masonry.framework不会报错
2、app中以源码形式存在masonry不会报错
3、pod工程以源码形式存在masonry不会报错,但是需要你的代码兼容主版本的masonry库
4、pod工程以framework形式存在masonry.framework就会报The ‘Pods-XXX’ target has frameworks with conflicting names: masonry.framework错误

但是恰好有个业务pod 是以framework形式pod masonry的。我这里想到了以下几种方法
1、删掉app里面pod的源masonry.framework,想都不用想,放弃
2、在SDK的podspec里不强制pod masonry,建议用户pod,我不是很喜欢这种方式,我想让用户一键就可以pod成功,不需要额外做一些事情
3、直接把masonry的代码集成到sdk中,以framework的方式让用户pod,这种方式亲测是可以解决问题的。但是framework维护起来又很费事
4、把masonry的代码集成到SDK中,并修改前缀,防止命名冲突。这个工作量谁改谁知道。
5、把masonry.framework移除掉,重构masonry的代码

好吧,我选择了第5种,直接将masonry.framework移除掉,并重构了相关代码。如果后面还遇到类似问题,我会尝试第三种和第四种方法。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值