我尝试使用添加目标在Xcode 5上添加测试目标 - >添加Cocoa Touch Unit Testing Bundle。但是,当我运行测试时,我收到以下错误:
2013-09-24 10:43:14.446 Stack Exchange [48895:c07] 加载错误 /用户/ arielitovsky /库/开发商/ Xcode中/ DerivedData / MyApp的-fjegcztcnwxqdfdimhonqzzqpdwr /编译/产品/调试-iphonesimulator /堆栈 Exchange Tests.xctest / Stack Exchange测试: 的dlopen(/用户/ arielitovsky /库/开发商/ Xcode中/ DerivedData / MyApp的-fjegcztcnwxqdfdimhonqzzqpdwr /编译/产品/调试-iphonesimulator /堆栈 Exchange Tests.xctest / Stack Exchange Tests,262):未加载库 /Developer/Library/Frameworks/XCTest.framework/XCTest参考 从: /用户/ arielitovsky /库/开发商/ Xcode中/ DerivedData / MyApp的-fjegcztcnwxqdfdimhonqzzqpdwr /编译/产品/调试-iphonesimulator /堆栈 Exchange Tests.xctest / Stack Exchange 测试原因:找不到图像 IDEBundleInjection.c:加载包时出错 “/用户/ arielitovsky /库/开发商/ Xcode中/ DerivedData / MyApp的-fjegcztcnwxqdfdimhonqzzqpdwr /编译/产品/调试-iphonesimulator /堆栈 Exchange Tests.xctest'程序以退出代码结束:0
为什么这不起作用?
答案 0 :(得分:76)
您必须在iOS 7模拟器上运行测试。它不适用于iOS 6.x。
答案 1 :(得分:2)
我已通过设置常规标签 - >修复此问题。部署目标到7.0(用于“运行”单元测试的应用程序)。如果您希望为主应用程序提供早于7.0的支持,这并不是很好。但由于单元测试构建目标上没有部署目标,因此无法在其中进行设置。您必须将单元测试的目标(在“常规”选项卡上)设置为部署目标为7.0的应用程序。您可以设置“TestApp”来执行此操作,这样您就不必限制主应用程序的部署。
答案 2 :(得分: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