xcode11.4 - 在 Xcode 11.4 上启用代码覆盖时如何解决单元测试崩溃
问题描述
在启用代码覆盖率时执行所有单元测试后,我们遇到了崩溃。请在下面找到堆栈跟踪
Crashed Thread: 0 ReceiverMainThread Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: EXC_I386_GPFLT
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [41136]
Application Specific Information:
CoreSimulator 704.12 - Device: iPad Pro (12.9-inch) (3rd generation) (C0064E72-B310-4A5B-82BE-BCC12D3E4D46) - Runtime: iOS 13.4 (17E255) - DeviceType: iPad Pro (12.9-inch) (3rd generation)
Thread 0 Crashed:: ReceiverMainThread Dispatch queue: com.apple.main-thread
0 com.ios.Dev 0x000000010ea6f368 initializeValueProfRuntimeRecord + 56
1 com.ios.Dev 0x000000010ea733aa writeOneValueProfData + 170
2 com.ios.Dev 0x000000010ea7323b lprofWriteDataImpl + 683
3 com.ios.Dev 0x000000010ea72f7d lprofWriteData + 109
4 com.ios.Dev 0x000000010ea7151a writeFile + 714
5 com.ios.Dev 0x000000010ea7118f __llvm_profile_write_file + 1007
6 libsystem_c.dylib 0x00007fff51a65a38 __cxa_finalize_ranges + 326
7 libsystem_c.dylib 0x00007fff51a65d56 exit + 48
8 com.apple.dt.XCTest 0x00000001124ea721 _XCTestMain + 2709
9 libXCTestBundleInject.dylib 0x000000011138abfa __RunTests_block_invoke_2 + 13
10 com.apple.CoreFoundation 0x00007fff23da1a9c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
11 com.apple.CoreFoundation 0x00007fff23da1193 __CFRunLoopDoBlocks + 195
12 com.apple.CoreFoundation 0x00007fff23d9bf83 __CFRunLoopRun + 995
13 com.apple.CoreFoundation 0x00007fff23d9b884 CFRunLoopRunSpecific + 404
14 com.apple.GeoServices 0x00007fff38b5ac1a GSEventRunModal + 139
15 com.apple.UIKitCore 0x00007fff48c19220 UIApplicationMain + 1605
16 com.ios.Dev 0x000000010e7be223 main + 430 (main.m:125)
17 libdyld.dylib 0x00007fff519b910d start + 1
如果启用了代码覆盖,则此崩溃仅在 XCode 11.4 上发生。如果禁用代码覆盖率,它可以正常工作,但我们希望在执行单元测试后进行代码覆盖率。在 Xcode 11.3 中,单元测试在启用代码覆盖的情况下运行良好。任何人都可以让我们知道这个问题的解决方案。提前致谢。
编辑:分辨率
对我们来说,将其中一个依赖项的Macho-O-Type从可重定位对象文件更改为静态库解决了这个问题。但不确定这是否是导致此问题的唯一原因,因为可能有多种原因。
解决方案
尝试禁用代码覆盖率。对我来说有帮助
推荐阅读
- macos - FFMPEG 无法识别 -crf 或 -qp
- nlp - 计算文档中单词模式的频率
- performance - IIS 上的 TTFB 优化
- python - 如何在pytorch中制作新的权重参数?
- c# - 设置cookie作为响应
- firebase - 在特定国家/地区使用 Firebase 身份验证未收到 OTP
- excel - 如何将 RSSI 值从 arduino ide 导出到 Excel(实时更新)
- laravel - Laravel 使用 Carbon 根据表格生成年份的日期列表
- kotlin - 初始化不在构造函数中的数据类中的属性
- nuget - 如何安装 Rebar.EF.PluginManager Nuget?