用途:本参考用于在 iOS 应用中通过 MetricKit 采集用户设备上的聚合性能指标与诊断数据,数据来自选择共享分析的用户,按天投递(开发环境可即时投递)。
主要能力:设置 MXMetricManagerSubscriber 订阅者;解析 MXMetricPayload(CPU、内存、启动、退出、滚动卡顿、磁盘 I/O、网络、signpost 等指标);解析 MXDiagnosticPayload(崩溃、卡顿、磁盘写入异常、CPU 异常);解析 MXCallStackTree 调用栈;理解后台退出原因(jetsam、watchdog 等);将 payload 导出为 JSON 并上传分析服务;与现有崩溃上报工具集成。
使用方式:在应用生命周期早期注册订阅者,实现 didReceive(_ payloads: [MXMetricPayload]) 与 didReceive(_ payloads: [MXDiagnosticPayload]);开发环境可通过 Xcode > Debug > Simulate MetricKit Payloads 触发即时投递;调用栈需用 dSYM 符号化,可用 mdfind 查找 dSYM、用 atos 符号化地址。
适用场景:分析线上崩溃、卡顿、启动耗时、内存与 CPU 使用、后台退出原因等现场诊断问题。
限制:数据有约 24 小时延迟,非实时调试;调用栈未符号化,需保留 dSYM;仅限用户主动选择共享数据;数据为聚合统计而非单用户轨迹;模拟器不采集,仅支持真机;基础指标需 iOS 13+,诊断 payload 与卡顿诊断需 iOS 14+,启动诊断需 iOS 16+,开发即时投递需 iOS 15+。