最近我开始为一个旧的静态库编写测试用例。我已将库加载到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):找不到合适的图像。找到了:
我不知道为什么会出现这个错误。
任何指出正确方向的帮助都将非常感激。
无法加载捆绑UITests,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包
验证所有目标是否使用相同的iOS版本:构建设置 - > iOS部署目标
我遇到了类似的问题。对我来说,问题是一个单元测试框架,它是一个动态框架,但没有复制到xctest软件包。
解决方案是将“复制文件”阶段添加到我的单元测试目标,将其目标设置为“Frameworks”并将我的框架添加为输入文件。
我自己找到了答案。
您的构建设置 - >架构应该与库和测试项目相同
架构 - >架构= Standrad架构(armv7,armv7s,arm64)$(ARCHS_STANDARD)
您的测试项目的链接 - > Mach-O类型应该是捆绑
链接 - > Mach-O Type = Bundle
进行构建和运行测试。而已
对我来说,这个问题是由于我的测试目标中的“iOS部署目标”构建设置与我的主应用程序不同。一旦我做了同样的问题就会消失。
检查您是否忘记在Podfile
中添加测试目标:
target 'MyProject' do
# Add test target
target 'MyProjectTests' do
inherit! :search_paths
end
pod 'SomePodLibrary'
end
关闭测试目标的pod配置为我解决了问题,它与pod配置混乱有关。
对我来说,我们刚刚启用了CloudKit授权。由于某种原因打破了建设。
有一个类似的问题:
FrameworkA导入FrameworkB
FrameworkA-Tests还导入FrameworkB
解决问题的方法是删除(注释)框架测试中对Framework的所有引用,然后运行一次测试并取消注释引用。
Framework-Tests现在导入Framework并运行正常。