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

问题描述 投票:20回答:10

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

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

无法加载/xxx/xxx/xxx/StaticLibTest.xctest中的测试包,因为发生了意外错误:Error Domain = NSCocoaErrorDomain Code = 3587“无法加载软件包”StaticLibTest.xctest“,因为它已损坏或丢失必要的资源。“ (dlopen_preflight(/xxx/xxxx/xxx/Debug-iphonesimulator/StaticLibTest.xctest/StaticLibTests):找不到合适的图像。找到了:

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

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

ios xcode5 static-libraries xctest
10个回答
25
投票

如果其他读者收到此错误,并且您正在使用Carthage添加框架,请确保Copy Files阶段与Destination:Frameworks一起使用。

Adding frameworks from Carthage

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


0
投票

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

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


21
投票

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

解决方案是将“复制文件”阶段添加到我的单元测试目标,将其目标设置为“Frameworks”并将我的框架添加为输入文件。


20
投票

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


13
投票

我自己找到了答案。

您的构建设置 - >架构应该与库和测试项目相同

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

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

链接 - > Mach-O Type = Bundle

进行构建和运行测试。而已


11
投票

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


2
投票

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

target 'MyProject' do

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

  pod 'SomePodLibrary'

end

1
投票

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


0
投票

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


0
投票

有一个类似的问题:

FrameworkA导入FrameworkB

FrameworkA-Tests还导入FrameworkB

解决问题的方法是删除(注释)框架测试中对Framework的所有引用,然后运行一次测试并取消注释引用。

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

© www.soinside.com 2019 - 2024. All rights reserved.