---
title: "Migrate from 7.x to 8.x"
description: "Learn about migrating from Sentry Cocoa SDK 7.x to 8.x."
url: https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8/
---

# Migrate from 7.x to 8.x | Sentry for macOS

Migrating to 8.x from 7.x includes a few breaking changes. We provide this guide to help you update your SDK. It's important to note that this version adds a dependency to Swift, and that we renamed the default branch on the [sentry-cocoa repository](https://github.com/getsentry/sentry-cocoa) from `master` to `main`.

## [Changes to Minimum OS Versions and Xcode](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#changes-to-minimum-os-versions-and-xcode)

The minimum supported OS versions have been bumped to macOS 10.13, iOS 11, tvOS 11, and watchOS 4. We bumped the minimum Xcode version to 13.

## [Features Enabled by Default](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#features-enabled-by-default)

The following features are now enabled by default:

* [The user interaction tracing integration](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation/automatic-instrumentation.md#user-interaction-tracing)
* [The File I/O tracing integration](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation/automatic-instrumentation.md#file-io-tracking)
* [Core Data tracing integration](https://docs.sentry.io/platforms/apple/guides/macos/tracing/instrumentation/automatic-instrumentation.md#core-data-tracing)
* [Capture failed requests](https://docs.sentry.io/platforms/apple/guides/macos/configuration/http-client-errors.md)
* [App Hangs](https://docs.sentry.io/platforms/apple/guides/macos/configuration/app-hangs.md) (not available for watchOS)

## [Changes to Grouping](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#changes-to-grouping)

App Hang events might group differently as we now set the event stack trace snapshot property to `true`.

## [Rename OOM to Watchdog Termination](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#rename-oom-to-watchdog-termination)

The OOM (out of memory integration) actually tracks [watchdog terminations](https://developer.apple.com/documentation/xcode/addressing-watchdog-terminations) based on heuristics. We renamed the integration to better reflect what it does.

## [Breaking Changes](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#breaking-changes)

### [Configuration Changes](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#configuration-changes)

This version includes the following configuration changes:

* Rename `SentryOptions.enableAutoPerformanceTracking` to `SentryOptions.enableAutoPerformanceTracing`
* Rename `SentryOptions.enableUIViewControllerTracking` to `SentryOptions.enableUIViewControllerTracing`
* Rename `SentryOptions.enablePreWarmedAppStartTracking` to `SentryOptions.enablePreWarmedAppStartTracing`
* Rename `SentryOptions.enableFileIOTracking` to `SentryOptions.enableFileIOTracing`
* Rename `SentryOptions.enableCoreDataTracking` to `SentryOptions.enableCoreDataTracing`
* Rename `SentryOptions.enableOutOfMemoryTracking` to `SentryOptions.enableWatchdogTerminationTracking`

### [Swift API Improvements](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#swift-api-improvements)

We made some changes to make the API more ergonomic in Swift:

* Rename `SentrySDK.addBreadcrumb(crumb:)` to `SentrySDK.addBreadcrumb(_ crumb:)`
* Rename `SentryScope.add(_ crumb:)` to `SentryScope.addBreadcrumb(_ crumb:)`
* Rename `SentryScope.add(_ attachment:)` to `SentryScope.addAttachment(_ attachment:)`
* Rename `Client` to `SentryClient`

### [Cleanup Public Classes](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#cleanup-public-classes)

We cleaned up our public classes by removing a few functions and properties, that shouldn't be public, to make the API cleaner. In case we removed something you need, please [open an issue](https://github.com/getsentry/sentry-cocoa/issues/new/choose) on GitHub.

* Make `SpanProtocol.data` non nullable

* Mark `[SpanProtocol setExtraValue:forKey:]` as deprecated

* Make `SpanContext` immutable

  * Remove tags from `SpanContext`
  * Remove context property from `SentrySpan`

* Remove `SentryScope.apply(to:)`

* Remove `SentryScope.apply(to:maxBreadcrumb:)`

* Remove `[SentryOptions initWithDict:didFailWithError:]`

* Remove `[SentryOptions sdkInfo]`

* Make `SentrySession` and `SentrySDKInfo` internal

* Remove default attachment content type

* Remove `captureEnvelope` from `SentryHub` and `SentryClient`

* Remove confusing transaction tag

### [SDK Inits](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#sdk-inits)

We removed the version of `SentrySDK.startWithOptions` that took a dictionary, and renamed `SentrySDK.startWithOptionsObject` to `SentrySDK.startWithOptions`. The recommended way to initialize Sentry has not changed:

```swift
import Sentry

SentrySDK.start { options in
    options.dsn = "___PUBLIC_DSN___"
    // ...
}
```

### [SentrySDK.close Is Now Blocking](https://docs.sentry.io/platforms/apple/guides/macos/migration/v7-to-v8.md#sentrysdkclose-is-now-blocking)

`SentrySDK.close` now calls flush, which is a blocking call.
