簡體   English   中英

將xctest框架添加到舊項目

[英]add xctest framework to an old project

如何將xctest框架添加到舊項目? 當我嘗試添加新框架時,我在“將庫鏈接到二進制文件”的可用列表中找不到xctest。

我也嘗試了edit-> refractor-> convertToXCTEst,但是選擇了使用xctest的目標:沒有列出目標

在Xcode 6.1.1和Xcode 6.0.1中,XCTest.framework不再作為可用框架列出。 但是,在Xcode 5.1.1中,列出了該框架。

因此,在測試時,Xcode 5和6之間似乎有所變化。 例如,當您在Xcode 6中創建新項目時,您不再需要XCTest框架。 您可以簡單地添加一個新的測試用例,構建並運行測試就可以了。 我還沒有弄清楚為什么會這樣,但是對您來說,這可能是首先要嘗試的事情:只需編寫一個測試用例,然后看一切是否正常即可。

如果沒有,那么您可以嘗試這種丑陋的解決方法:使用較舊版本的Xcode打開項目,在其中添加框架,然后再使用新版本的Xcode進行工作。 當我用Xcode 5.1.1嘗試時,這對我有用。


編輯:Xcode 6創建的項目中不再需要XCTest.framework的原因是因為這些項目的生成設置CLANG_ENABLE_MODULES設置為YES。 Xcode 6在UI中以“啟用模塊(C和Objective-C)”的名稱公開了該代碼。 啟用此設置后,系統框架(例如XCTest)的任何#import語句都會導致clang自動鏈接到該框架。 有關詳細信息,請參見clang文檔“模塊”部分 啟用此構建設置后,您還可以從目標的“鏈接二進制文件與庫”構建階段中刪除任何其他系統框架。

出於完整性考慮:Xcode 6不再將XCTest.framework列為可用框架的原因是,該框架在Xcode包中的位置已更改:

# Xcode 6
/Applications/Xcode-6.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework
# Xcode 5
/Applications/Xcode-5.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/Developer/Library/Frameworks/XCTest.framework

顯然,Apple現在完全依賴CLANG_ENABLE_MODULES來獲取要鏈接到XCTest.framework的測試目標。 如果希望Xcode 6將XCTest.framework列為可用框架,則可以在Xcode應用程序包內手動創建符號鏈接:

cd /Applications/Xcode-6.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks
sudo ln -s /Applications/Xcode-6.1.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework .

創建鏈接后,您需要重新啟動Xcode。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM