XCode 4.3 - 构建错误“缺少必需的架构armv7”

时间:2012-03-08 07:40:15

标签: xcode4

将XCode从4.2升级到4.3后我遇到了以下问题。我无法建立它。 你们有没有想法如何解决这个问题?甚至一些线索对我也有帮助。

ld: warning: ignoring file    /Applications/Xcode.app/Contents/Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit, missing required architecture armv7 in file
Undefined symbols for architecture armv7:
  "_STComposeString", referenced from:
      -[NSMutableURLRequest_ParametersTest verifyDefaultParametersForRequest:] in NSMutableURLRequest+ParametersTest.o
      -[NSMutableURLRequest_ParametersTest verifyModifiedParametersForRequest:] in NSMutableURLRequest+ParametersTest.o
      -[NSMutableURLRequest_ParametersTest verifyEmptyParametersForRequest:] in NSMutableURLRequest+ParametersTest.o
      -[NSString_URLEncodingTest testURLEncodedString] in NSString+URLEncodingTest.o
      -[NSURL_BaseTest testURLStringWithoutQuery] in NSURL+BaseTest.o
      -[OAHMAC_SHA1SignatureProviderTest testSignClearText] in OAHMAC_SHA1SignatureProviderTest.o
      -[OAMutableURLRequestTest testGenerateNonce] in OAMutableURLRequestTest.o
      ...
  "_OBJC_CLASS_$_SenTestCase", referenced from:
      _OBJC_CLASS_$_NSMutableURLRequest_ParametersTest in NSMutableURLRequest+ParametersTest.o
      _OBJC_CLASS_$_NSString_URLEncodingTest in NSString+URLEncodingTest.o
      _OBJC_CLASS_$_NSURL_BaseTest in NSURL+BaseTest.o
      _OBJC_CLASS_$_OAHMAC_SHA1SignatureProviderTest in OAHMAC_SHA1SignatureProviderTest.o
      _OBJC_CLASS_$_OAMutableURLRequestTest in OAMutableURLRequestTest.o
      _OBJC_CLASS_$_OAPlaintextSignatureProviderTest in OAPlaintextSignatureProviderTest.o
      _OBJC_CLASS_$_OARequestParameterTest in OARequestParameterTest.o
      ...
  "_OBJC_METACLASS_$_SenTestCase", referenced from:
      _OBJC_METACLASS_$_NSMutableURLRequest_ParametersTest in NSMutableURLRequest+ParametersTest.o
      _OBJC_METACLASS_$_NSString_URLEncodingTest in NSString+URLEncodingTest.o
      _OBJC_METACLASS_$_NSURL_BaseTest in NSURL+BaseTest.o
      _OBJC_METACLASS_$_OAHMAC_SHA1SignatureProviderTest in OAHMAC_SHA1SignatureProviderTest.o
      _OBJC_METACLASS_$_OAMutableURLRequestTest in OAMutableURLRequestTest.o
      _OBJC_METACLASS_$_OAPlaintextSignatureProviderTest in OAPlaintextSignatureProviderTest.o
      _OBJC_METACLASS_$_OARequestParameterTest in OARequestParameterTest.o
      ...
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

6 个答案:

答案 0 :(得分:23)

从Xcode 4.2升级后,我得到了与模拟器相同的链接错误 - > 4.3.1。我注意到4.3.1中的新项目与单元测试有关,所以只是比较了项目差异。

为我修好的是: -

  1. 在项目导航器中选择项目
  2. 选择测试目标
  3. 选择构建设置
  4. 转到框架搜索路径并单击它
  5. 删除那里的任何内容
  6. 输入$(SDKROOT)/ Developer / Library / Frameworks $(DEVELOPER_LIBRARY_DIR)/ Frameworks
  7. 如果您有任何自定义框架,请将其添加回来
  8. 实际上,单元测试也可以在设备上正常运行。

答案 1 :(得分:2)

看起来这是Apple的意外(或故意)遗漏。

如果(且仅当)您是注册的Apple Developer,您可以登录Apple Developer论坛,如果您copy this linked search query into your browser address bar,您会看到其他人遇到同样的问题。

现在看起来你只能在模拟器上使用SenTestingKit。

答案 2 :(得分:2)

我在Xcode 4.4上遇到了类似的问题。 我的解决途径: 从主目标(被测系统)“链接二进制文件库”中删除了SetTestingKit.framework,将其保留在测试目标中。不知道为什么它最终会在那里结束。

答案 3 :(得分:0)

我相信这个错误现在已在Xcode 4.4.1

中修复

答案 4 :(得分:0)

使用xcode 4.6并尝试添加facebook SDK 3.1我遇到了这个问题,因为我没有选择将文件添加到我的测试目标。

复制框架时应检查两个目标。

答案 5 :(得分:-1)

我刚升级到4.3.1 SenTestingKit框架存在问题。我从项目中删除了测试源代码,它构建正常。它可以在5.1设备上运行。但是当我在模拟器上运行时,我得到_ dyld _dyld_start错误。我不得不从项目中删除SenTestingKit,使其在模拟器上运行。