iOS 27 rebuilds MetricKit from the ground up with a modern, Swift-first API that delivers metric and diagnostic reports via async streams, adds Metal frame rate metrics, memory exception diagnostics, and crash termination categories, plus a new StateReporting framework to contextualize metrics by app state.
⢠Entire public API rebuilt as a Swift-first async stream interface replacing the MXMetricManagerSubscriber delegate pattern
⢠MetricReports and DiagnosticReports are now Codable out of the box, enabling direct JSON serialization
⢠New Metal frame rate metric group added for game performance monitoring
⢠New StateReporting framework introduced so metrics can be sliced by developer-defined app states (e.g. active tab, feature flag); crash diagnostics gain a termination category field
⢠Async stream-based API replaces delegate callbacks, making it trivial to await metric and diagnostic reports at app launch without missing data
⢠New StateReporting framework lets you segment any metric (hangs, hitches, CPU) by custom app states like active tab or feature flag, turning blended averages into actionable per-screen insights
⢠New Metal frame rate metric and memory exception diagnostics give game developers and all apps richer triage data; crash diagnostics now include a termination category so you can directly correlate metric trends with individual crash events
In-depth guide
iOS 26 ā iOS 27 Migration Guide ā