Xcode 7.0和7.1,代码覆盖率打开,单元测试崩溃“无法合并以前的GCDA文件:corrupt arc tag”

时间:2015-10-22 19:34:51

标签: xcode unit-testing code-coverage xcode7

Xcode 7 beta 以来,我们遇到了这个问题,直到今天这个问题依然存在 Xcode 7.1

基本上我们无法打开Xcode中的代码覆盖率。在Xcode 6中,这个工作正常,但自Xcode 7以来一直被破坏。在单元测试运行结束时,我们得到无限的控制台输出说:

profiling: /Users/<my path to app>/ObjectiveC.gcda: cannot merge previous GCDA file: corrupt arc tag (<some hex address>)

此输出会一直重复,直到应用崩溃。我只是不知道为什么会发生这种情况并且所有解决此问题的尝试都失败了(除了关闭仪器程序流程并关闭代码覆盖率)。我甚至尝试设置一个构建阶段运行脚本来查找和清除以前的代码覆盖率文件,但这也不起作用。

有人想出来了吗?

2 个答案:

答案 0 :(得分:2)

感谢@gagarwal方向。我只需要找出一个不同的jenkins报告工具,因为需要旧的代码覆盖文件,但我想这不再受支持了。以下是一些屏幕截图,用于说明根据gagarwal的建议在Xcode中生成代码覆盖率报告的设置:

----------------------        
main app target config
----------------------

enter image description here enter image description here

----------------------
test app target config
----------------------

enter image description here enter image description here

------------------------------------------
Scheme config (see "Gather coverage data")
------------------------------------------

enter image description here

答案 1 :(得分:1)

Xcode 7的新代码覆盖功能使用LLVM coverage format

Xcode 7还具有代码覆盖率的新构建设置: &#34; CLANG_ENABLE_CODE_COVERAGE&#34;

确保&#34; CLANG_ENABLE_CODE_COVERAGE&#34;被设置为&#34;是&#34;以及NO:

GCC_GENERATE_TEST_COVERAGE_FILES = NO; GCC_INSTRUMENT_PROGRAM_FLOW_ARCS =否;