最近我开始为一个旧的静态库编写测试用例。我已将库加载到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): 找不到合适的图像。找到了:
我不知道为什么会出现这个错误。
任何指出正确方向的帮助都将非常感激。
答案 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
阶段与目标:框架相符。
如果您不小心将框架添加到具有不同目标(框架除外)或Copy Files
的{{1}}阶段,这也会产生损坏/无效的捆绑包错误消息。
答案 1 :(得分:21)
我有类似的问题。对我来说,问题是一个单元测试框架,它是一个动态框架,但没有复制到xctest软件包。
解决方案是添加一个"复制文件"阶段到我的单位测试目标,将其目的地设置为"框架"并将我的框架添加为输入文件。
答案 2 :(得分:20)
答案 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部署目标