2013-09-24 28 views
30

我試着在Xcode 5上添加一個測試目標,使用Add Target - > Add Cocoa Touch Unit Testing Bundle。但是,當我運行測試時,出現以下錯誤:Xcode 5在添加測試目標時拋出「Library not loaded」錯誤

2013-09-24 10:43:14.446 Stack Exchange[48895:c07] Error loading /Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange Tests: dlopen(/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange Tests, 262): Library not loaded: /Developer/Library/Frameworks/XCTest.framework/XCTest Referenced from: /Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange Tests Reason: image not found IDEBundleInjection.c: Error loading bundle '/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest' Program ended with exit code: 0

爲什麼不能正常工作?

回答

76

您必須在iOS 7模擬器上運行測試。它不適用於iOS 6.x.

+0

你剛剛做了我的一天。 – shawnwall

+0

很高興我可以幫助:)我認爲它最終會發生在某人身上 –

+0

現在所有的編譯和運行都很好,除了我的XCTest測試似乎沒有運行。 XCTest測試旁邊的OCUnit測試旁邊的綠色三角形是空心的。 –

2

我已經通過將常規選項卡 - >部署目標設置爲7.0(用於「運行」單元測試的應用程序)來解決此問題。如果您想爲主應用​​程序支持7.0以前的版本,這並不是很好。但是由於單元測試構建目標沒有部署目標,因此無法將其設置在那裏。您必須將單元測試的目標(在常規選項卡上)設置爲部署目標爲7.0的應用程序。你可以設置一個「TestApp」來做到這一點,所以你不必限制你的主應用程序的部署。

0

儘管我的CI服務器配置了Xcode 5.1.1和iOS 7.1,但我的確有同樣的問題。 我嘗試了很多參數,最後正確的是-destination

這裏有一個完整的命令的例子:

xcodebuild -workspace MyApp.xcworkspace -sdk iphonesimulator7.1 -destination "platform=iOS Simulator,name=iPhone Retina (4-inch)" -scheme MyAppTests test 

它還與xctool 0.1.16。

學分:http://www.mokten.com/2014/04/xcodebuild-unit-tests-library-not-loaded-no-image-found/

一個細節,也許可以解釋爲什麼我不得不添加-destination PARAM,是我有兩個iOS 6中,並安裝7.1的SDK。我沒有檢查如果我刪除iOS 6 SDK會發生什麼。

HTH

相關問題