---
title: "Features"
description: "Learn about Sentry's Apple SDK features for macOS."
url: https://docs.sentry.io/platforms/apple/guides/macos/features/
---

# Features | Sentry for macOS

Sentry's Apple SDK for macOS enables automatic reporting of errors and exceptions, and identifies performance issues in your application. The minimum supported macOS version is 10.10. All features listed below are **enabled by default** unless otherwise noted.

For macOS, a simple [manual setup](https://docs.sentry.io/platforms/apple/guides/macos/usage.md#capturing-uncaught-exceptions) is required for the SDK to report uncaught exceptions.

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.

For a complete list of all available features, see the [main Features page](https://docs.sentry.io/platforms/apple/guides/macos/features.md). This page highlights macOS-specific features and capabilities.

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

### [MetricKit Integration](https://docs.sentry.io/platforms/apple/guides/macos/features.md#metrickit-integration)

[MetricKit integration](https://docs.sentry.io/platforms/apple/guides/macos/configuration/metric-kit.md) integrates with Apple's MetricKit framework for system-level performance metrics.

* Available on macOS 12+
* Enabled by default (requires `enableMetricKit` option)

### [Profiling](https://docs.sentry.io/platforms/apple/guides/macos/features.md#profiling)

[Profiling](https://docs.sentry.io/platforms/apple/guides/macos/profiling.md) provides code-level performance profiling with multiple modes (requires configuration):

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

## [Error & Crash Detection](https://docs.sentry.io/platforms/apple/guides/macos/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/guides/macos/configuration/app-hangs.md)

* [HTTP client errors](https://docs.sentry.io/platforms/apple/guides/macos/configuration/http-client-errors.md) automatically captured

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

macOS supports comprehensive [performance monitoring](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation.md):

* [Network request monitoring](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation/automatic-instrumentation.md#network-tracking) for HTTP request performance
* [File I/O performance tracking](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation/automatic-instrumentation.md#file-io-tracing) for file operations
* [Core Data performance tracking](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation/automatic-instrumentation.md#core-data-tracing) for Core Data query performance
* [Distributed tracing](https://docs.sentry.io/platforms/apple/guides/macos/tracing/trace-propagation.md) across services

For macOS apps using UIKit (Mac Catalyst), the following features are also available:

* [App start tracking](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation/automatic-instrumentation.md#prewarmed-app-start-tracing) for cold and warm app start times
* [Frame rate tracking](https://docs.sentry.io/product/insights/mobile/mobile-vitals.md) for UI rendering performance
* [User interaction tracking](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation/automatic-instrumentation.md#user-interaction-tracing) that automatically creates transactions for UI interactions
* [Automatic performance transactions](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation/automatic-instrumentation.md#uiviewcontroller-tracing) for UIViewController rendering

## [Session & User Tracking](https://docs.sentry.io/platforms/apple/guides/macos/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

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

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

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

  * Application lifecycle events (`didBecomeActive`, `didEnterBackground`)
  * System events (memory warnings, keyboard did show and did hide, screenshot taken)
  * Outgoing HTTP requests

* [Attachments](https://docs.sentry.io/platforms/apple/guides/macos/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/guides/macos/data-management/debug-files/source-context.md) shows snippets of code around the location of stack frames

* [User Feedback](https://docs.sentry.io/platforms/apple/guides/macos/user-feedback.md) provides the ability to collect user information when an event occurs (programmatic API only, no UI on macOS)

## [Other Features](https://docs.sentry.io/platforms/apple/guides/macos/features.md#other-features)

* Swift Async/Await support for automatically stitching together stack traces of Swift concurrency code
* [Logs capturing](https://docs.sentry.io/platforms/apple/guides/macos/logs.md) available (requires `enableLogs` option)
* Offline caching when a device is unable to connect; we send a report once we receive another event

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

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

## [macOS Limitations](https://docs.sentry.io/platforms/apple/guides/macos/features.md#macos-limitations)

macOS has some limitations compared to iOS:

* Session Replay not available
* User Feedback UI not available (programmatic API only)
* Screenshot capture not available (except Mac Catalyst)
* View Hierarchy capture not available (except Mac Catalyst)
* Watchdog terminations not available

For configuration options and detailed documentation, see the [Configuration](https://docs.sentry.io/platforms/apple/guides/macos/configuration.md) section.

## Pages in this section

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