cocoapods导致的符号重复问题分析和解决,cocoapods符号

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 13:27 我要评论(0)

cocoapods导致的符号重复问题分析和解决,cocoapods符号

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重名了。

问题解决。

http://www.bkjia.com/Androidjc/961549.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/961549.htmlTechArticlecocoapods导致的符号重复问题分析和解决,cocoapods符号 xplayer工程用了Pods,xplayerdemo_pods工程引用xplayer时又用了Pods,导致如下的链接错误: d...

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...