XCode 4.3 - 构建错误“缺少必需的架构armv7”
将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)
看起来这是苹果公司的意外(或故意)遗漏。
如果(且仅当)您是注册的Apple开发人员,您可以登录Apple开发者论坛,如果您copy this linked search query into your browser address bar,您会看到其他人遇到同样的问题。
现在,它看起来像你只能在模拟器上使用SenTestingKit。
我刚升级到4.3.1 SenTestingKit框架有问题。我从项目中删除了测试源代码,它可以正常工作。它可以在5.1设备上运行。但是当我在模拟器上运行它时,我得到_ dyld _dyld_start错误。我不得不从项目中删除SenTestingKit,以使其在模拟器上工作。
从Xcode 4.2 - > 4.3.1升级后,模拟器出现同样的链接错误。我注意到4.3.1中的新项目与单元测试一起工作,所以只比较项目差异。
什么固定对我来说是: -
- 选择项目在项目导航
- 选择测试的目标
- 选择构建设置
- 再往框架搜索路径和单点击
- 删除任何有
- 输入$(SDKROOT)/ Developer/Library/Frameworks $(DEVELOPER_LIBRARY_DIR)/ Frameworks
- 如果您有任何自定义的框架,添加这些回
实际上,单元测试运行在设备上也很好。
我有一个与Xcode 4.4类似的问题。 我的解决方案路径: 从主目标(正在测试的系统)中删除SetTestingKit.framework“与库链接二进制文件”,将其保留在测试目标中。不知道为什么它首先结束了。
我相信现在这个bug修复在Xcode 4.4.1
使用的Xcode 4.6,并尝试添加Facebook的SDK 3.1我有这个问题,因为我没有选择将文件添加到我的测试目标。
您应该在复制框架时检查两个目标。
哦,好的,我会试着让你知道它是如何工作的!真的很感谢你的回答!再次感谢!有什么方法可以确认框架是否有符号? – Tommy 2012-03-08 09:07:52
因为它是一个框架。所以我认为我无能为力,就像构建它支持iOS甚至下载。因为它是一个包含在SDK中的本地框架。 – Tommy 2012-03-08 09:17:45
啊,你是对的......这是一个本地框架。这似乎是苹果方面的一个疏漏。你应该提交一个[雷达中的bug](http://bugreporter.apple。com)要求Apple将其重新用于设备上。 – 2012-03-08 09:40:28