---
title: "Features"
description: "Here's a list of Sentry's Apple SDK features."
url: https://docs.sentry.io/platforms/apple/features/
---

# Features | Sentry for Apple

Sentry's Apple SDK enables automatic reporting of errors and exceptions, and identifies performance issues in your application.

The SDK builds a crash report that persists to disk. While it attempts to send the report right after the crash, it may not always work because the environment may be unstable at the time of the crash. If this is the case, the report will be sent upon application start.

All features listed below are **enabled by default** unless otherwise noted. Some features have platform-specific limitations or version requirements, which are indicated where applicable.

## [Error & Crash Detection](https://docs.sentry.io/platforms/apple/features.md#error--crash-detection)

* Multiple types of errors are captured, including:

  * Mach exceptions
  * Fatal signals
  * Unhandled exceptions
  * C++ exceptions
  * Objective-C exceptions
  * Error messages of `fatalError`, `assert`, and `precondition`
  * Start-up crashes. The SDK init waits synchronously for up to 5 seconds to flush out events if the app crashes within 2 seconds after the SDK init.

* [App Hang Detection](https://docs.sentry.io/platforms/apple/configuration/app-hangs.md)
  * On iOS and tvOS: Differentiates between fully-blocking and non-fully-blocking app hangs, and measures app hang duration (AppHangsV2, enabled by default since SDK version 9.0.0)

* [Watchdog Terminations](https://docs.sentry.io/platforms/apple/configuration/watchdog-terminations.md) (only available on iOS, tvOS, and visionOS)

* [HTTP Client Errors](https://docs.sentry.io/platforms/apple/configuration/http-client-errors.md)

## [Performance Monitoring](https://docs.sentry.io/platforms/apple/features.md#performance-monitoring)

* Automatic [Performance Tracking](https://docs.sentry.io/platforms/apple/tracing/instrumentation.md) for:

  * Rendering of UIViewControllers

  * Performance of HTTP requests

  * Distributed tracing

  * [Insights for Mobile Vitals](https://docs.sentry.io/product/insights/mobile/mobile-vitals.md)

    * Cold and warm start
    * Slow and frozen frames
    * [Prewarmed App Start Tracing](https://docs.sentry.io/platforms/apple/tracing/instrumentation/automatic-instrumentation.md#prewarmed-app-start-tracing)

  * Performance of [File I/O](https://docs.sentry.io/platforms/apple/tracing/instrumentation/automatic-instrumentation.md#file-io-tracing) operations

  * Performance of [Core Data](https://docs.sentry.io/platforms/apple/tracing/instrumentation/automatic-instrumentation.md#core-data-tracing) queries

  * [User Interaction](https://docs.sentry.io/platforms/apple/tracing/instrumentation/automatic-instrumentation.md#user-interaction-tracing) transactions for UI clicks

  * Frame rate tracking for UI performance (only available on iOS, tvOS, and visionOS)

  * App start time measurement for cold and warm starts (only available on iOS, tvOS, and visionOS)

* [Profiling](https://docs.sentry.io/platforms/apple/profiling.md) (requires configuration, only available on iOS and macOS)

  * Transaction-based profiling (deprecated)
  * Continuous profiling
  * UI Profiling (recommended)
  * Launch profiling

* Swift Async/Await support for stitching together stack traces of Swift concurrency code

## [Session & User Tracking](https://docs.sentry.io/platforms/apple/features.md#session--user-tracking)

* [Release health](https://docs.sentry.io/product/releases/health.md) tracks crash-free users and sessions

* Session tracking automatically tracks user sessions for release health metrics

* [Session Replay](https://docs.sentry.io/platforms/apple/session-replay.md) (only available on iOS 16+ and tvOS 16+)

  * Requires SDK version 8.31.1 or later
  * tvOS is not officially supported

## [Event Enrichment](https://docs.sentry.io/platforms/apple/features.md#event-enrichment)

* Events [enriched](https://docs.sentry.io/platforms/apple/enriching-events/context.md) with device data, environment information, and app state

* [Breadcrumbs are automatically](https://docs.sentry.io/platforms/apple/enriching-events/breadcrumbs.md#automatic-breadcrumbs) captured for:

  * Application lifecycle events (`didBecomeActive`, `didEnterBackground`, `viewDidAppear`)
  * Touch events
  * System events (battery level or state changed, memory warnings, device orientation changed, keyboard did show and did hide, screenshot taken, time zone changed or significant time change)
  * Outgoing HTTP requests

* [Attachments](https://docs.sentry.io/platforms/apple/enriching-events/attachments.md) enrich your event by storing additional files, such as config or log files

* [Source Context](https://docs.sentry.io/platforms/apple/data-management/debug-files/source-context.md) shows snippets of code around the location of stack frames

* [View Hierarchy](https://docs.sentry.io/platforms/apple/guides/ios/enriching-events/viewhierarchy.md) and [Screenshot](https://docs.sentry.io/platforms/apple/guides/ios/enriching-events/screenshots.md) attachments for errors (only available on iOS and tvOS)

* [User Feedback](https://docs.sentry.io/platforms/apple/user-feedback.md) provides the ability to collect user information when an event occurs (User Feedback UI only available on iOS 13+)

## [Platform-Specific Features](https://docs.sentry.io/platforms/apple/features.md#platform-specific-features)

* [MetricKit](https://docs.sentry.io/platforms/apple/configuration/metric-kit.md) integration (only available on iOS 15+ and macOS 12+, requires enabling `enableMetricKit` option)
* Logs capturing (requires [`enableLogs`](https://docs.sentry.io/platforms/apple/configuration/options.md#enableLogs) option, only available on iOS, tvOS, visionOS, and macOS)

## [Data Management](https://docs.sentry.io/platforms/apple/features.md#data-management)

* Offline caching when a device is unable to connect; we send a report once we receive another event
* Event persistence: crash reports persist to disk and are sent upon application start if not sent immediately after a crash

## [Experimental Features](https://docs.sentry.io/platforms/apple/features.md#experimental-features)

For information about experimental features, see the [Experimental Features](https://docs.sentry.io/platforms/apple/features/experimental-features.md) page.

## [Platform-Specific Documentation](https://docs.sentry.io/platforms/apple/features.md#platform-specific-documentation)

For platform-specific feature details and limitations, see:

* [iOS Features](https://docs.sentry.io/platforms/apple/guides/ios/features.md)
* [macOS Features](https://docs.sentry.io/platforms/apple/guides/macos/features.md)
* [tvOS Features](https://docs.sentry.io/platforms/apple/guides/tvos/features.md)
* [watchOS Features](https://docs.sentry.io/platforms/apple/guides/watchos/features.md)
* [visionOS Features](https://docs.sentry.io/platforms/apple/guides/visionos/features.md)

## Pages in this section

- [Experimental Features](https://docs.sentry.io/platforms/apple/features/experimental-features.md)
