用途:面向从 Sentry、App Store Connect 等聚合器获取的、已分组计数的生产崩溃与卡顿问题集合(corpus)进行批量分级排查,而非单个崩溃文件。核心原则是“只标记、不隐藏”,所有问题都出现在报告中,被标记为噪声的问题进入独立的“已降级”部分并附理由。
主要能力:从 Sentry 或 App Store Connect 抓取并规范化问题数据,运行 xcsym triage 对每条问题分类、聚类并标记挂起/空闲 runloop 噪声,再将机械聚类语义合并为真实缺陷族,最终输出按受影响用户数排序的报告,包含真实缺陷族、已降级为疑似噪声的清单、无法分类的问题及汇总统计。对含 enrichment 的问题给出跨技能指引(如 0xdead10cc 与 SQLite/GRDB 帧指向数据保护问题,应参考 axiom-data)。
使用方式:确定数据来源(Sentry 或 ASC)。Sentry 按查找顺序定位令牌(SENTRY_AUTH_TOKEN 环境变量 → ~/.sentryclirc → 项目 .sentryclirc → 询问存放位置),先用 limit=1 探测权限,再用 GET /api/0/projects/{org}/{proj}/issues/?query=is:unresolved&limit=100 抓取,并沿 Link rel="next" 翻页直至耗尽;注意 omitted statsPeriod(仅接受空值、24h、14d),Sentry 帧为自底向上需反转。ASC 使用 metrics_build_diagnostics 列出崩溃签名,metrics_get_diagnostic_logs 获取帧明细。将规范化问题按 JSONL 写入临时文件后执行:xcsym triage --latest-version <latest_version> --os-floor <floor> --min-users <n> < /tmp/corpus.jsonl,解析 TriageResult JSON 并做语义合并、生成报告。
适用场景:需要从聚合器批量排查生产崩溃/卡顿、区分真实缺陷与噪声时。限制:仅适用于聚合器问题集合;单个崩溃文件(.ips、MetricKit、.crash、.xccrashpoint 或粘贴文本)应改用 crash-analyzer;本地 Xcode Organizer 的 .xccrashpoint 集合应参考 axiom-shipping。noise 标记的 deprioritize_safety 值不授权关闭问题,高安全等级也需复查;版本分布判断需考虑发布曝光偏差。报告中需逐字保留各噪声类别的常驻说明。