如何 read/translate macOS 12 (Monterey) .ips 崩溃文件?

How to read/translate macOS 12 (Monterey) .ips crash files?

从 macOS 12 (Monterey) 开始,系统显然将崩溃文件写入 .ips 文件,而不是传统的 .crash 文件格式。

文件似乎包含 JSON 数据:

{"app_name":"Helper","timestamp":"2021-10-30 18:49:32.00 +0100","app_version":"3.0.0(66) beta","slice_uuid":"673198dd-94ac-31a7-9e81-09fe6c781255","build_version":"3.0.0.66","platform":1,"bundleID":"com.dislt.helper","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 12.0.1 (21A559)","incident_id":"CC03C2EC-C1D4-4F6E-AA1F-6C4EC555D6B8","name":"Helper"}
{
  "uptime" : 91000,
  "procLaunch" : "2021-10-30 18:49:29.7791 +0100",
  "procRole" : "Unspecified",
  "version" : 2,
  "userID" : 501,
  "deployVersion" : 210,
  "modelCode" : "MacBookPro14,3",
  "procStartAbsTime" : 91844701503187,
  "coalitionID" : 1244,
  "osVersion" : {
    "train" : "macOS 12.0.1",
    "build" : "21A559",
    "releaseType" : "User"
  },
  "captureTime" : "2021-10-30 18:49:32.4572 +0100",
  "incident" : "92A89610-D70A-4D93-A974-A9018BB5C72A",
  "bug_type" : "309",
  "pid" : 77765,
  "procExitAbsTime" : 91847378271126,
  "cpuType" : "X86-64",
  "procName" : "Helper",
  ...

当我在控制台应用程序中预览或打开文件时,会自动生成传统的崩溃报告:

-------------------------------------
Translated Report (Full Report Below)
-------------------------------------

Process:               Helper [77765]
Path:                  /Users/USER/Library/Application Support/Helper.app/Contents/MacOS/Helper
Identifier:            com.distl.helper
Version:               3.0.0(66) beta (3.0.0.66)
Code Type:             X86-64 (Native)
Parent Process:        TestBead [77726]
Responsible:           TestBead [77726]
User ID:               501

Date/Time:             2021-10-30 18:49:32.4572 +0100
OS Version:            macOS 12.0.1 (21A559)
Report Version:        12
Bridge OS Version:     3.0 (14Y908)
Anonymous UUID:        CC03C2EC-C1D4-4F6E-AA1F-6C4EC555D6B8


Time Awake Since Boot: 91000 seconds

System Integrity Protection: enabled

Crashed Thread:        1  Dispatch queue: com.apple.NSXPCConnection.user.anonymous.77726

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x00007f780071a000
Exception Codes:       0x0000000000000001, 0x00007f780071a000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process:   exc handler [77765]
...

我有自动扫描这些崩溃报告文件的客户支持和开发工具,我想知道是否有办法自动将 JSON 数据转换回传统的崩溃报告格式?

我想这样做是为了 (a) 避免重写我的崩溃报告扫描工具(尽管这并非不可能),以及 (b) 自动将这些文件转换为人类可读的格式,而无需求助于在控制台应用程序中打开文件。

我 运行 遇到了同样的问题。我自己还没有尝试过,但是有人已经在 GitHub 上创建了一个可用的 ips2crash 命令。顾名思义,它应该将 .ips 文件转换为(现在)遗留的崩溃报告格式。