无法加载测试包,因为出现意外错误

时间:2014-08-01 11:58:54

标签: ios xcode5 static-libraries xctest

最近我开始为一个旧的静态库编写测试用例。我已将库加载到Xcode 5,由于静态库已旧,我必须手动添加TestProject和Test Target。

当我尝试"产品 - >测试" ,它启动模拟器,控制台显示以下错误

  

/xxx/xxx/xxx/StaticLibTest.xctest上的测试包不可能   因为发生意外错误而加载:错误   Domain = NSCocoaErrorDomain Code = 3587"捆绑包“StaticLibTest.xctest”   无法加载,因为它已损坏或缺少必要   资源&#34。   (dlopen_preflight(/xxx/xxxx/xxx/Debug-iphonesimulator/StaticLibTest.xctest/StaticLibTests):   找不到合适的图像。找到了:

我不知道为什么会出现这个错误。

任何指出正确方向的帮助都将非常感激。

10 个答案:

答案 0 :(得分:25)

如果其他读者收到此错误,并且您正在使用Carthage添加框架,请确保>>> number1 = -1 >>> number2 = 1 >>> number3 = 100 >>> number4 = 101 >>> number5 = 34 >>> BOUNDS = (1, 100) >>> for number in number1, number2, number3, number4, number5: ... print(number in range(BOUNDS[0], BOUNDS[1] + 1)) ... False True True False True 阶段与目标:框架相符。

Adding frameworks from Carthage

如果您不小心将框架添加到具有不同目标(框架除外)或Copy Files的{​​{1}}阶段,这也会产生损坏/无效的捆绑包错误消息。

答案 1 :(得分:21)

我有类似的问题。对我来说,问题是一个单元测试框架,它是一个动态框架,但没有复制到xctest软件包。

解决方案是添加一个"复制文件"阶段到我的单位测试目标,将其目的地设置为"框架"并将我的框架添加为输入文件。

答案 2 :(得分:20)

我可以通过设置测试目标的主机应用程序来解决此问题: Host Application

答案 3 :(得分:13)

我自己找到了答案。

您的构建设置 - >图书馆和测试项目的架构应该相同

  

架构 - >架构= Standrad架构(armv7,armv7s,   arm64)$(ARCHS_STANDARD)

您的测试项目的链接 - > Mach-O类型应该是Bundle

  

链接 - > Mach-O Type = Bundle

构建并运行测试。多数民众赞成

答案 4 :(得分:10)

对我来说,这个问题是由于" iOS部署目标"构建设置在我的测试目标中与我的主应用程序不同。一旦我做了同样的问题就会消失。

答案 5 :(得分:2)

检查您是否忘记在Podfile中添加测试目标:

target 'MyProject' do

  # Add test target
  target 'MyProjectTests' do
    inherit! :search_paths
  end

  pod 'SomePodLibrary'

end

答案 6 :(得分:1)

关闭测试目标的pod配置为我解决了问题,它与pod配置混乱有关。

答案 7 :(得分:0)

对我来说,我们刚刚开启了CloudKit权利。由于某种原因打破了建设。

答案 8 :(得分:0)

有一个类似的问题:

FrameworkA 导入 FrameworkB

FrameworkA-Tests 还导入 FrameworkB

解决问题的方法是删除(评论) FrameworkA-Tests 中对 FrameworkB 的所有引用,然后运行一次测试并取消注释引用。

FrameworkA-Tests 现在导入 FrameworkB 并运行正常。

答案 9 :(得分:0)

无法加载捆绑包UITests,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包

验证以下位置是否所有目标都使用相同的iOS版本: 构建设置-> iOS部署目标