【问题标题】:Xcode 5 throws "Library not loaded" error when adding a test target添加测试目标时,Xcode 5 抛出“库未加载”错误
【发布时间】:2013-09-29 22:40:21
【问题描述】:

我尝试使用 Add Target -> Add Cocoa Touch Unit Testing Bundle 在 Xcode 5 上添加测试目标。但是,当我运行测试时,出现以下错误:

2013-09-24 10:43:14.446 Stack Exchange[48895:c07] 加载错误 /Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange 测试: dlopen(/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange Tests, 262):库未加载: /Developer/Library/Frameworks/XCTest.framework/XCTest 参考 从: /Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest/Stack Exchange 测试原因:找不到图像 IDEBundleInjection.c:加载包时出错 '/Users/arielitovsky/Library/Developer/Xcode/DerivedData/MyApp-fjegcztcnwxqdfdimhonqzzqpdwr/Build/Products/Debug-iphonesimulator/Stack Exchange Tests.xctest' 程序以退出代码结束:0

为什么这不起作用?

【问题讨论】:

    标签: cocoa unit-testing xcode5 xctest


    【解决方案1】:

    您必须在 iOS 7 模拟器上运行您的测试。它不适用于 iOS 6.x。

    【讨论】:

    • 你让我开心。
    • 很高兴我能帮上忙 :) 我想这最终会发生在某人身上
    • 很好,现在一切都编译并运行了,除了我的 XCTest 测试似乎没有运行。 OCUnit 测试旁边的绿色三角形在我 XCTest 测试旁边是空心的。
    • 您确定在“测试”方案下的“测试”窗格中设置它们吗?您也可以点击那些空心圆圈来单独运行它们。
    【解决方案2】:

    我已通过将常规选项卡 -> 部署目标设置为 7.0 来解决此问题(对于您用于“运行”单元测试的应用程序)。如果您想为您的主应用程序支持早于 7.0 的版本,这不是很好。但是由于单元测试构建目标上没有部署目标,因此您无法将其设置在那里。相反,您必须将单元测试的目标(在常规选项卡上)设置为部署目标为 7.0 的应用程序。您可以设置一个“TestApp”来执行此操作,这样您就不必限制主应用程序的部署。

    【讨论】:

      【解决方案3】:

      虽然我的 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 会发生什么。

      HTH

      【讨论】:

        猜你喜欢
        • 2014-01-14
        • 1970-01-01
        • 2014-11-19
        • 2013-09-30
        • 2013-08-18
        • 2018-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多