2012-03-08 56 views
7

将XCode从4.2升级到4.3后,我遇到了以下问题。我无法构建它。 你们有没有想法我该如何解决这个问题?即使有一些线索会对我有所帮助。XCode 4.3 - 构建错误“缺少必需的架构armv7”

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) 

回答

2

看起来这是苹果公司的意外(或故意)遗漏。

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

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

+0

哦,好的,我会试着让你知道它是如何工作的!真的很感谢你的回答!再次感谢!有什么方法可以确认框架是否有符号? – Tommy 2012-03-08 09:07:52

+0

因为它是一个框架。所以我认为我无能为力,就像构建它支持iOS甚至下载。因为它是一个包含在SDK中的本地框架。 – Tommy 2012-03-08 09:17:45

+1

啊,你是对的......这是一个本地框架。这似乎是苹果方面的一个疏漏。你应该提交一个[雷达中的bug](http://bugreporter.apple。com)要求Apple将其重新用于设备上。 – 2012-03-08 09:40:28

-1

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

+0

但是,如果您删除SenTestingKit框架,那么可能会出现一些错误发生在使用senTestingKit框架的地方。 – Tommy 2012-03-09 00:17:34

+0

我刚刚删除它。这意味着我放弃了单元测试功能。但无论如何,它的作品:) – Tommy 2012-03-09 01:13:09

+2

删除单元测试当然不是一个解决方案。 – Julien 2012-03-09 11:34:12

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. 如果您有任何自定义的框架,添加这些回

实际上,单元测试运行在设备上也很好。

+0

谢谢佩恩我要再次用自己的方式进行测试。 – Tommy 2012-03-15 01:01:17

+0

+1真棒!我会说,“做一个新的测试目标,然后从那里复制”,但没有这个答案,我不知道要复制什么。好东西。 – 2012-04-27 15:18:02

+0

这对你们中的一些人来说似乎很明显,但我首先没有意识到我必须为链接到SenTestingKit的所有目标执行此操作。就我而言:单元测试目标和用于运行单元测试的单元测试应用程序。 – Julien 2012-05-03 13:16:15

2

我有一个与Xcode 4.4类似的问题。 我的解决方案路径: 从主目标(正在测试的系统)中删除SetTestingKit.framework“与库链接二进制文件”,将其保留在测试目标中。不知道为什么它首先结束了。

0

我相信现在这个bug修复在Xcode 4.4.1

0

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

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

相关问题