2012-03-08 54 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我有這個問題,因爲我沒有選擇將文件添加到我的測試目標。

您應該在複製框架時檢查兩個目標。

相關問題