Ios Xcode 7-代码覆盖率数据生成失败
当我运行测试时,我得到一个错误: 代码覆盖率数据生成失败。Ios Xcode 7-代码覆盖率数据生成失败,ios,xcode,swift,ios9,Ios,Xcode,Swift,Ios9,当我运行测试时,我得到一个错误: 代码覆盖率数据生成失败。 无法从“UIDevice”检索配置文件数据文件 控制台上显示警告: 等待模拟器启动120秒超时,当前状态为1 原因是什么?根本原因可能是模拟器故障。模拟器的问题很常见,尤其是在首次发射时 如果在成功启动并连接模拟器后仍出现问题,请发布错误的详细信息 为了让模拟器启动,我通常必须取消第一次运行(在干净地启动Xcode之后),并尝试重新运行几次 如果这是可重复的,发生在多个项目上,并且在项目重新启动和清理之后继续存在,如果堆栈溢出社区无法
无法从“UIDevice”检索配置文件数据文件 控制台上显示警告: 等待模拟器启动120秒超时,当前状态为1
原因是什么?根本原因可能是模拟器故障。模拟器的问题很常见,尤其是在首次发射时 如果在成功启动并连接模拟器后仍出现问题,请发布错误的详细信息 为了让模拟器启动,我通常必须取消第一次运行(在干净地启动Xcode之后),并尝试重新运行几次
如果这是可重复的,发生在多个项目上,并且在项目重新启动和清理之后继续存在,如果堆栈溢出社区无法帮助,考虑向苹果提交缺陷。
< P>我经历了完全相同的错误,最终使它生效,这是我采取的步骤。因此,这看起来是一个模拟器的问题,切换到不同的设备工作。重置内容和设置可能是非工作设备的解决方案。一个或多个模拟器卡住了。对我来说,唯一能解决这个问题的方法就是从simulator菜单中重置simulator内容和设置
注意:这将从模拟器中删除所有应用程序数据。Cocoapods
link\u与
方法可能导致此问题
我在xcode 7.2上得到了完全相同的错误-没有多少模拟器或设备重置似乎可以清除它。在完全重建我的UITest目标后,尽管一切都很顺利。在.pbxproj
文件的大量git差异中花费了大量时间之后,我为我的项目找到了一个解决方案。我不确定它是否解决了每个看到这个错误的人的根本原因,但它确实为我澄清了问题
从“部署目标”下面的项目信息中,“配置”将列出应用程序的所有可能配置。展开您试图运行的配置,您将看到所有目标的列表。在我的例子中,cocoapods自动为UITest目标添加了一个基本配置:
在下拉列表中将其设置为none
。接下来在左侧的菜单中选择UITest目标,然后
构建阶段
您将需要删除检查pods清单。锁定将二进制文件链接到库
emebd pods框架
和复制pods资源
最后转到你的pod文件,检查是否有提到你的UITest目标。在我的案例中,我一直在我的pod文件顶部指定:
platform :ios, '8.4'
use_frameworks!
link_with 'My App', 'My UITesting Target'
pod 'A Pod', '~> 1.0'
相反,podfile应该列出每个目标的特定依赖项:
platform :ios, '8.4'
use_frameworks!
target 'My App', :exclusive => true do
pod 'A Pod I want to use in my app', '~> 1.0'
end
假设您没有在UITests中使用任何POD,目标应该重新构建,不会出现错误,测试将运行
我对这个问题根源的理解是,每个UITest目标构建两个独立的捆绑包,一个用于应用程序,一个用于UITest控制器。不幸的是,cocoapodslink_with
logic会修改所有指定的目标,使其包中包含pods.framework。构建阶段脚本会将框架添加到应用程序包中,但不会添加到UITest控制器包中,因此当您启动测试时,UITest控制器包似乎缺少框架,xcode会中止安装
如果您在UITests中使用POD,您应该能够以相同的方式指定这些POD:
target 'My UITesting Target', :exclusive => true do
pod 'Another Pod I want only for UITesting', '~> 1.0'
end
当您运行pod install
时,一切都应该正确连接。我解决了这个问题,就像我解决了大多数XCode问题一样:
删除DerivedData
(Xcode>Preferences>Locations>DerivedData)中的项目文件→代码>在finder中跳转到那里)
产品>清洁
(按住alt按钮)Product>Clean Build文件夹
退出XCode
重新启动XCode
从设备/模拟器中删除应用程序
再试一次。
如果仍然无法工作,请使用其他模拟器/设备进行几次运行。它迟早会在原来的框架上再次工作。如果要将项目与第三方动态框架集成,可能需要在生成设置中添加路径。查找->构建设置->运行路径搜索路径,并确保它包含框架的路径
在我建立了一个项目,使用我的团队一直在开发的框架之后,我自己也看到了这个问题。更新此特定设置后,问题消失了。在我的例子中,路径与我已经为“框架搜索路径”设置设置的路径相同。如果您使用的是Cocoapods,请检查Cocoapods存储库中的以下线程:
这解决了我的问题:
正在复制@dfleming响应:
出于某种原因,CocoaPods似乎没有添加“[CP]
在以下情况下,将Pods框架的构建阶段嵌入到UI测试目标
生成项目工作区
我手动将其添加到中,UI测试再次可以运行
此构建阶段应运行以下脚本:(替换
{YourProject}和您的项目名称)
“${SRCROOT}/Pods/Target S
Project file -> Test target -> Build Settings -> Runpath Search Paths