cocoapods导致的符号重复问题分析和解决
来源:互联网 发布:淘宝没有人工客服了吗 编辑:程序博客网 时间:2024/05/22 16:22
xplayer工程用了Pods,xplayerdemo_pods工程引用xplayer时又用了Pods,导致如下的链接错误:
duplicate symbol _OBJC_METACLASS_$_PodsDummy_Pods
类似:
duplicate symbol _OBJC_METACLASS_$_PodsDummy_Pods in: /Users/erikkerber/Dropbox/Projects/MillMain/MyLib.framework/BuddySDK(Pods-dummy.o) /Users/erikkerber/Library/Developer/Xcode/DerivedData/MillMain-fngfqhlslygksgcfuciznkpqfrbr/Build/Products/Debug-iphonesimulator/libPods.a(Pods-dummy.o)duplicate symbol _OBJC_CLASS_$_PodsDummy_Pods in: /Users/erikkerber/Dropbox/Projects/MillMain/MyLib.framework/BuddySDK(Pods-dummy.o) /Users/erikkerber/Library/Developer/Xcode/DerivedData/MillMain-fngfqhlslygksgcfuciznkpqfrbr/Build/Products/Debug-iphonesimulator/libPods.a(Pods-dummy.o)ld: 2 duplicate symbols for architecture i386
**********************尝试删除**********************
一种办法是把demo工程里Link Binary with Libraries里的libPods.a的引用删除即可。
但是这个方法无法用于自动构建,得寻找其他方案。
我们来看符号重复的原因:
xplayer这个静态库工程用了Pods,所以编译链接了Pods-dummy.m文件。
而xplayerdemo_pods又用了Pods,又编译链接了新的Pods-dummy.m文件。
导致了PodsDummy_Pods这个类重复。
所以思路是想办法移除或重命名其中的一个Pods-dummy.m文件。
发现移除是不可行的,会导致无法生成libPods.a。
**********************尝试重命名**********************
现在来试重命名。
首先想到的是将xplayer里的Pods-dummy.m文件重命名,方法如下:
修改xplayer的Podfiles文件
platform :ios, ‘5.0'
target xplayer do
pod 'CocoaHTTPServer', '= 2.3'
pod 'Reachability', '~> 3.0
end
这样xplayer工程生成的dummy类是PodsDummy_Pods_xplayer。
此时Build xplayerdemo_pods工程会报错说PodsDummy_Pods_xplayer这个符号重复了: 这是因为xplayerdemo_pods的Pods包含了xplayer, 生成了第二个PodsDummy_Pods_xplayer类。
如果我们能修改target xplayer do里的”xplayer”为其他字符串就好了,但是目前没有找到这种解决方案。
现在剩下的办法是将xplayerdemo_pods里的Pods-dummy.m文件重命名,方法如下:
修改xplayerdemo_pods的Podfiles文件如下
platform :ios, '5.0'
target :xplayerdemo_pods do #增加target语句
pod 'xplayer', :podspec => 'http://repo.xx.com/specs/xplayer/0.0.1/xplayer.podspec'
end
这样xplayerdemo_pods工程生成的dummy类是PodsDummy_Pods_xplayerdemo_pods。
这样就不会和xplayer包含的dummy类PodsDummy_Pods重名了。
问题解决。
0 0
- cocoapods导致的符号重复问题分析和解决
- 有符号和无符号导致的问题
- 解决spring、springMVC重复扫描导致事务失效的问题
- 解决spring、springMVC重复扫描导致事务失效的问题
- 解决:防止页面按钮被重复点击,导致页面重复提交的问题
- ListView滑动过程中图片显示重复错位闪烁的问题分析和解决
- Spring自带批量任务Scheduled重复执行两次的问题分析和解决
- 一次内存泄漏导致的OOM实例分析和解决
- listView异步加载图片导致图片错位、闪烁、重复的问题的解决
- Android studio 解决Android Library Project jar包重复导致的问题
- eclipse解决Android Library Project jar包重复导致的问题
- 因第三方包名重复导致编译报错问题的解决
- 解决 hybird 应用中重复获取 WebView,导致页面元素无法识别的问题
- 解决 hybird 应用中重复获取 WebView,导致页面元素无法识别的问题
- iOS利用runtime,解决多次点击相同button,导致重复跳转的问题
- 利用runtime,解决多次点击相同button,导致重复跳转的问题
- iOS- 利用runtime,解决多次点击相同button,导致重复跳转的问题
- iOS开发--利用 runtime,解决多次点击相同 button,导致重复跳转的问题
- 敏捷会议魔方
- SSH-struts1登录实例
- Codeforces 390C Inna and Candy Boxes RMQ简单变化 或 前缀和dp一下
- Android 开发学习小结(二)
- Android AlertDialog对话框自定义风格的另类实现
- cocoapods导致的符号重复问题分析和解决
- CODEVS-3303-翻转区间
- Linux 命令16-which命令
- 互联网模式的企业如何运维IT系统(二)
- 再学异常
- Django使用redis做cache
- c_指针_一维数组名作为函数参数
- AJAX调试技术 IE篇
- UVA12108 Extraordinarily Tired Students(超级大模拟)