MetricKit has been rebuilt from the ground up in iOS 27 with a contextually rich, Swift-first API that delivers metrics and diagnostics as async streams, plus new capabilities like Metal frame rate metrics, memory exception diagnostics, and per-state metric breakdowns via the StateReporting framework.
⢠Entire API rebuilt as a modern Swift-first async stream interface replacing the old MXMetricManagerSubscriber delegate pattern
⢠New Metal frame rate metric added for game developers
⢠New memory exception diagnostics surface why an app or extension was terminated for exceeding its memory limit
⢠Crash diagnostics now include a termination category correlating individual crashes to abnormal termination trends in metrics
⢠New StateReporting framework integration allows metrics to be segmented by developer-defined app states (e.g. active tab, feature flags)
⢠Async/await streams replace delegate callbacks, making it trivial to collect, encode, and ship metric and diagnostic reports to your analytics server
⢠New app-state contextualization lets you attribute scroll hitches, hangs, and CPU usage to specific tabs or app configurations ā no more blended averages hiding real regressions
⢠Metal frame rate metrics and memory exception diagnostics are brand new, giving game developers and memory-sensitive apps first-class on-device telemetry without third-party SDKs
In-depth guide
iOS 26 ā iOS 27 Migration Guide ā