Xcode 5添加测试目标时出现“库未加载”错误

30
我尝试使用Add Target -> Add Cocoa Touch Unit Testing Bundle在Xcode 5上添加测试目标。但是,当我运行测试时,我得到以下错误:
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
为什么会这样呢?
3个回答

76

您必须在iOS 7模拟器上运行测试,否则将无法在iOS 6.x上运行。


你刚刚让我开心了一整天。 - shawnwall
很高兴能够帮助 :) 我想这迟早会发生在某个人身上 - Arie Litovsky
太好了,现在所有的编译和运行都没问题了,但我的XCTest测试似乎无法运行。OCUnit测试旁边的绿色三角形为空,而我的XCTest测试也是如此。 - Erik Engheim
对于iOS设备也同样适用。 - voromax
显示剩余3条评论

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参数的细节是,我安装了iOS 6和7.1 SDK。不过我还没有检查如果删除iOS 6 SDK会发生什么。

希望对你有所帮助


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接