MetricKit MXDiagnostic 符号

MetricKit MXDiagnostic symbolication

我正在尝试实施 MetricKit,以便稍后我可以分析 MXCrashDiagnosticMXHangDiagnostic 报告。但是,当我触发测试崩溃,然后执行 Debug->Simulate MetricKit Payloads 时,我总是在 dictionaryRepresentation() 中收到完全相同的结果。 这是我为 MXCrashDiagnostic 获得的示例:

[[AnyHashable("diagnosticMetaData"): {
    appBuildVersion = 2;
    appVersion = "1.0";
    deviceType = "iPhone10,6";
    exceptionCode = 0;
    exceptionType = 1;
    osVersion = "iPhone OS 14.0.1 (18A393)";
    platformArchitecture = arm64;
    regionFormat = CA;
    signal = 11;
    terminationReason = "Namespace SIGNAL, Code 0xb";
    virtualMemoryRegionInfo = "0 is not in any region.  Bytes before following region: 4000000000 REGION TYPE                      START - END             [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL UNUSED SPACE AT START ---> __TEXT                 0000000000000000-0000000000000000 [   32K] r-x/r-x SM=COW  ...pp/Test";
}, AnyHashable("callStackTree"): {
    callStackPerThread = 1;
    callStacks =     (
                {
            callStackRootFrames =             (
                                {
                    address = 74565;
                    binaryName = testBinaryName;
                    binaryUUID = "A36D6CF4-CBE8-4FB9-9DC4-C7EE8C6431CC";
                    offsetIntoBinaryTextSegment = 123;
                    sampleCount = 20;
                }
            );
            threadAttributed = 1;
        }
    );
}, AnyHashable("version"): 1.0.0]]

对于 cpuExceptionDiagnosticshangDiagnosticscallStackTree 的值始终相同。

我试图通过执行命令来符号化数据:

1. cd /Path/To/Archive/myApp.xcarchive/dSYMs/myApp.app.dSYM/Contents/Resources/DWARF/
2. atos -arch arm64 -o myApp 0x00074565

但总是得到相同的结果:

atos[79918]: respawning is disabled (because DYLD_ROOT_PATH or DT_NO_RESPAWN is set), but the analysis process does not match the SDK variant of the target process 0.
Analysis of malloc zones may fail.
0x00074565 (in myApp)

我在网上找不到任何关于 xcode 中的警告或任何参数的信息 我试图遵循 this and this guides on the symbolication process, some answers were also provided to this question,但看起来我没有正确的符号化数据,即使我确实正确设置了报告。

如果有人能让我知道我遗漏了什么以及如何正确地符号化这些报告,我将不胜感激。

我想当您在 XCODE 中触发模拟 metricKit 有效负载时,它会始终提供包含 MXDiagnosticPayload 的相同数组。

Debug->Simulate MetricKit Payloads这只是一个例子。不能用atos符号化。

唯一的办法就是收集用户的有效载荷。