使用我的iPhone应用程序并尝试构建调试,我得到“106架构armv7的重复符号”?
我正在使用.workspace文件,因为我正在尝试使用CocoaPods。如果我不使用.workspace而是使用.xcodeproj我没有得到错误,但后来我失去了-lPods。
在我的项目中,我在Project Navigator中有以下目标。
Pods (blue icon)
MyProject (blue icon)
Restkit.xcodeproj (blue icon)
... all my files
问题是Restkit正在引用“AFHTTPClient.h”和所有其他AF代码,但我通过CocoaPods将其包含在内。我尝试从RestKit库中删除AFNetworking文件夹,但显然Restkit库找不到AFNetworking的Pods版本?
有没有办法让RestKit使用Pods版本?如果不是我如何从我的项目中删除Pods?
答案 0 :(得分:6)
你的一个.h文件中有一行你写的
#include "___.m"
而不是
#include "___.h"
答案 1 :(得分:2)
所以我修好了。从供应商文件夹中删除RestKit版本的AFNetworking后,我通过拖入Xcode将其添加回来。它询问我想要使用/复制到哪个项目,这次我选择了RestKitTest(或者任何名为RestKitTesting的项目)。它现在有效。也许我之前选择了RestKit和RestKitTest,这是错的?
答案 2 :(得分:2)
我也想出了同样的错误。通常,由于项目文件夹中的重复类和xib,会发生此类错误。例如,在我的项目中,我有两次这些类ServiceRequest.h/.m
。摆脱重复的,你很高兴。
答案 3 :(得分:2)
在构建阶段 - >编译源代码,确保没有两次添加相同的文件。
答案 4 :(得分:2)
“架构的重复符号”问题在两种情况下发生:
您在项目中添加了两次.m文件
您正在使用静态库(.a文件),该库已包含您在项目中包含的一些类。
要修复任何这些情况,请检查链接器错误并查找重复的.o文件(示例:Reachability.o)。
然后转到构建阶段 - >编译源并搜索指定的文件,如果任何一个出现两次删除其中一个,如果只出现一次,则表示该文件也包含在添加到项目中的一个静态库中。从要编译的源列表中删除它,然后重试。
答案 5 :(得分:0)
我看到这个错误的时候,我确实将我的calabash框架拖放到xcode上,并在显示的窗口中选择了add to targets选项。基本上有两个添加文件的引用 我不得不手动删除calabash框架
正确的做法
将calabash框架复制到项目目录 然后去xcode项目 选择目标 - >构建阶段 - >链接二进制文件库并使用+按钮
添加框架工作
答案 6 :(得分:0)
我注意到在安装cocoaPods之后,Google分析也会出现重复的符号。删除其中一个档案后,libGoogleAnalytics_debug.a或libGoogleAnalytics.a复制已经消失。但很明显,如果我删除了调试版,我将无法运行os模拟器,反之亦然。我知道它不是解决方案,但至少它可以让我们知道什么是解决方案。如果我想弄清楚如何在这种情况下同时拥有两个文件,那么将回到这个主题。
编辑: 我能够通过从G分析版本2升级到3来解决问题。它只有一个库文件,我想这就是我们不再获得重复符号的原因。我希望这是有道理的。