XCode: 代码覆盖率数据生成失败

3

我在进行Objective-C项目的单元测试时,遇到了这个令人恐惧的问题。根据各种StackOverflow的发帖,我尝试了以下所有方法:

  • 清除派生数据
  • 删除~/Library中的所有模拟器设置
  • 重新启动XCode
  • 重新启动MBP
  • 多次重置模拟器
  • 更换不同的模拟器(甚至尝试了从未使用过的)

我检查了控制台日志,找到了如下信息:

  26/06/2016 9:20:10.973 PM com.apple.debugserver-@(#)PROGRAM:debugserver  PROJECT:debugserver-350.0.21.9
  [7768]: 1 +0.000000 sec [1e58/1003]: error: ::read ( 3, 0x700000080a40, 1024 ) => -1 err = Bad file descriptor (0x00000009)

我没有使用Cocoapods。

有没有人有任何想法,下一步该尝试什么?


可能是Xcode 7 - Code coverage data generation failed的重复问题。 - Max MacLeod
1个回答

10

你的应用程序中使用第三方框架吗?我在我的项目中链接到第三方框架并尝试运行测试时注意到了这个问题。

问题是测试捆绑包无法在运行时找到框架。您可以通过更新测试目标的Runpath Search Paths构建设置,添加$(PROJECT_DIR)/Frameworks(假设您将框架保存在该位置)来解决此问题。

以下是找到此设置的步骤:

Project file -> Test target -> Build Settings -> Runpath Search Paths

1
谢谢,这就是问题所在。Xcode真的需要清理一下这个错误,因为它并不明显。 - drekka
似乎无法在XCode 8.1.2上工作...但是无论如何尝试一下吧...但谁知道它对其他人可能管用...使用框架真是一团糟。 - Darkglow
1
你必须确保 $(PROJECT_DIR)/Frameworks 是你的框架目录。例如,如果你使用 Carthage,它可能是 $(PROJECT_DIR)/Carthage/Build/iOS - runmad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接