106个用于体系结构armv7的重复符号

时间:2012-12-05 15:54:01

标签: objective-c ios xcode armv7 cocoapods

使用我的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?

7 个答案:

答案 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)

架构的重复符号”问题在两种情况下发生:

  1. 您在项目中添加了两次.m文件

  2. 您正在使用静态库(.a文件),该库已包含您在项目中包含的一些类。

  3. 要修复任何这些情况,请检查链接器错误并查找重复的.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来解决问题。它只有一个库文件,我想这就是我们不再获得重复符号的原因。我希望这是有道理的。