Ios7 链接器错误发生在通过cocoapods更新KIF框架后运行和测试Xcode工作区时

Ios7 链接器错误发生在通过cocoapods更新KIF框架后运行和测试Xcode工作区时,ios7,xcode5,cocoapods,kif-framework,kif,Ios7,Xcode5,Cocoapods,Kif Framework,Kif,我有一个Xcode工作区,我在其中更新到KIF 2.0(通过pod文件中的终端和pod'KIF'进行pod更新),之后我按照Cocoapods部分提供的说明配置了工作区)。但是当我尝试执行项目并运行测试目标时,它抛出了一个错误 ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode.app/Contents/Developer/Library/Fram

我有一个Xcode工作区,我在其中更新到KIF 2.0(通过pod文件中的终端和pod'KIF'进行pod更新),之后我按照Cocoapods部分提供的说明配置了工作区)。但是当我尝试执行项目并运行测试目标时,它抛出了一个错误

ld: building for iOS Simulator, but linking against dylib built for MacOSX file '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit' for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我还检查了此链接:。但问题依然存在

我怎样才能纠正它?下面提供了屏幕截图

当我尝试使用iPhone5运行它时,它显示了5个链接器错误,例如

ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit, missing required architecture armv7s in file /Applications/Xcode.app/Contents/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit (2 slices)
Undefined symbols for architecture armv7s:
  "_OBJC_METACLASS_$_SenTestCase", referenced from:
      _OBJC_METACLASS_$_KIFTestCase in libPods.a(KIFTestCase.o)
  "_OBJC_CLASS_$_SenTestCase", referenced from:
      _OBJC_CLASS_$_KIFTestCase in libPods.a(KIFTestCase.o)
      l_OBJC_$_CATEGORY_SenTestCase_$_KIFAdditions in libPods.a(SenTestCase-KIFAdditions.o)
  "_SenTestToolKey", referenced from:
      +[KIFTestActor load] in libPods.a(KIFTestActor.o)
  "_SenSelfTestMain", referenced from:
      +[KIFTestActor load] in libPods.a(KIFTestActor.o)
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

转到您的目标设置,添加SentTestingKit以将二进制文件链接到库。

最新的cocoa pods版本也有同样的问题

您可以通过以下步骤解决此问题:

  • 选择Pods项目
  • 点击构建设置
  • 仅将构建活动体系结构更改为“否”

    • 我在同事的帮助下解决了这个问题。 两个步骤: 1、 只需将cocoapods更新为0.29.0,因为0.29.0刚刚修复了一个bug,更多详细信息,请参阅: 使用命令: sudogem安装cocoapod 吊舱安装 吊舱更新
      2、 如果您想在ios设备上运行应用程序,只需将构建设置->体系结构,其值更改为(标准体系结构(armv7,armv7s)),

      删除XCTest框架对我来说很有效。我知道这可能是您不想做的事情。

      将SenTestingKit框架添加到库中不会有任何区别(好的,然后转到项目目标上“信息”选项卡下的“配置”,公开调试配置,然后选择KIF Bundle测试目标并将其指向右侧的KIF pod配置文件。它应该类似于,
      Pods Pods.config
      。在我的项目目标上的“信息”选项卡上的“自定义iOS目标属性”下,我可以看到一个配置文件。)y,并将其设置为${CONFIGURATION}。这就是您指定的吗?我在测试目标上添加了一个“libPods MyProjectTests KIF.a”到
      链接二进制文件与库
      ,它解决了问题。我做了与您提到的相同的事情。但它仍然显示相同的问题。我已重新启动Xcode 5并尝试再次运行它。但问题仍然存在:(在我所有目标的项目中,build_activ_arch_only debug部分设置为Yes。奇怪,你确定你设置了Pods项目的键而不是你的Nexercise_iPhone项目吗?是的。我已经将Nexercise_iPhone项目build_active_arch_only设置为No,将Pods项目设置为Yes。你应该只从Pods项目更改build active Architecture)t改为“否”而不是“是”