我正在使用CocoaPods,并且everythnig工作正常,直到我添加Sonic.framework。
我收到了链接器错误:
ld: 96 duplicate symbols for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
完整日志: http://pastebin.com/TqdWWYdt
任何帮助?
答案 0 :(得分:3)
在那里,可能会在项目中多次添加一些文件
pod install
:删除所有内容。pod install
:再次安装所有内容这可能会解决问题
答案 1 :(得分:3)
冲突的包很可能是AFNetworking
,可以在您发布的构建日志中找到(在第7行,duplicate symbol _OBJC_IVAR_$_AFQueryStringPair._field in:
..,Google AFQueryStringPair
的Google搜索引导您快速进入AFNetworking相关地点)。
违规符号被声明为here。
Sonic SDK是否有机会嵌入AFNetworking
?
在这种情况下,您可能很幸运能够使用Sonic SDK中嵌入的AFNetworking
,只需将您自己的依赖放在AFNetworking
上即可解决问题。如果AFNetworking
是您的其他依赖项之一的下游依赖项,那将会更棘手。但至少你知道在哪里看。
修改:由于您也使用RESTKit
标记了问题,这可能比Sonic SDK(请参阅例如this)主题更可能是罪魁祸首。
答案 2 :(得分:1)
在我的情况下,它是由一个无关的-l" Pods-AFNetworking" in"其他Linker Flags"在"链接"我项目的构建设置部分。我在其他链接器标志中删除了这个以及一些其他无关的-lfoo参数:所有重复的符号都消失了。
您可以查看的其他内容可能包括:
将第三方软件作为项目的一部分复制到您的应用中 收集文件,然后通过命名将其添加为cocoapod 它在Podfile中。
包含同一第三方软件的多个版本 你的应用。
请勿忘记您可以取消选中某个文件"目标会员资格"目标的复选框,以防止它包含在您的构建中,因此,如果出于兼容性原因需要多个版本,则可以选择目标文件处于活动状态。
答案 3 :(得分:0)
您也可能只是链接多个pod库。请确保在Link Binary With Libraries
中您没有与libPods.a
和libPods-{target}
等进行关联
将毯子podfile分成目标特定指令后,我才发生这种情况。