macOS

Features:

  • Multiple types of errors are captured, including:
    • Mach exceptions
    • Fatal signals
    • Unhandled exceptions
    • C++ exceptions
    • Objective-C exceptions
    • Main thread deadlock (experimental)
  • Events enriched with device data
  • Offline caching when a device is unable to connect; we send a report once we receive another event
  • Breadcrumbs automatically captured for
    • Application lifecycle events (didBecomeActive, didEnterBackground)
    • Touch events
    • System events (battery level or state changed, memory warnings, device orientation changed, keyboard did show and did hide, screenshot taken)
    • Outgoing HTTP requests
  • Release Health tracks crash free users and sessions
  • Attachments enrich your event by storing additional files, such as config or log files
  • User Feedback provides the ability to collect user information when an event occurs

On this page, we get you up and running with Sentry's SDK, so that it will automatically report errors and exceptions in your application.

Don't already have an account and Sentry project established? Head over to sentry.io, then return to this page.

Install

Sentry captures data by using an SDK within your application’s runtime.

The minum version for macOS is 10.10.

We recommend installing the SDK with CocoaPods. To integrate Sentry into your Xcode project, specify it in your Podfile:

Podfile
Copied
platform :macos, '10.10'
use_frameworks! # This is important

target 'YourApp' do
  pod 'Sentry', :git => 'https://github.com/getsentry/sentry-cocoa.git', :tag => '8.32.0'
end

Then run pod install.

We also support alternate installation methods.

Configure

Configuration should happen as early as possible in your application's lifecycle.

You should also initialize the SDK as soon as possible, such as in your AppDelegate application:didFinishLaunchingWithOptions method:

Copied
import Sentry // Make sure you import Sentry

// ....

func application(_ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    SentrySDK.start { options in
        options.dsn = "https://examplePublicKey@o0.ingest.sentry.io/0"
        options.debug = true // Enabled debug when first installing is always helpful
    }

    return true
}

Provide Debug Information

Before capturing crashes, you need to provide debug information to Sentry. Debug information is provided by uploading dSYM files using one of two methods, dependent on your setup:

Verify

This snippet includes an intentional error, so you can test that everything is working as soon as you set it up:

Copied
import Sentry

let error = NSError(domain: "YourErrorDomain", code: 0, userInfo: nil)
SentrySDK.capture(error: error)

To view and resolve the recorded error, log into sentry.io and open your project. Clicking on the error's title will open a page where you can see detailed information and mark it as resolved.