We use cookies to ensure you get the best user experience on our website.Find Out More

iOS Bug Reporting & Crash Tracking SDK

Shake-to-Report Bug Tracking for Swift, Objective-C & SwiftUI

Shakebug is an iOS bug and crash reporting SDK for Swift, Objective-C, and SwiftUI apps. Shake the device — or trigger it from a button — and every report bundles an annotated screenshot, screen recording, console logs, and device data automatically. Crashes run through the same Crash AI grouping engine Shakebug uses for React Native, Android, Flutter, and web.

Debugging iOS crashes usually means chasing a stack trace without knowing which device, OS version, or user action triggered it. Shakebug attaches that context automatically — no separate crash reporter to wire up alongside your bug tracker.

Add Shakebug to your iOS app

Add the package (Swift Package Manager)

https://github.com/softnoesis/ShakeBug/

In Xcode: File → Add Package Dependencies, paste the URL above, and select version 1.0.44 or later.

Import & initialize in AppDelegate — Swift

import ShakeBug

func application(_ application: UIApplication,
                  didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    ShakeBugSDK.sharedInstance.initiateWithKey("<Your Key>")
    return true
}

Import & initialize in AppDelegate — Objective-C

#import <ShakeBug/ShakeBug.h>
#import <ShakeBug/ShakeBug-Swift.h>

[[ShakeBugSDK sharedInstance] initiateWithKey:@"<Your Key>"];

Add the Info.plist permission

<key>NSPhotoLibraryUsageDescription</key>
<string>Require access for reporting bugs.</string>

Crash capture is on by default once ShakeBugSDK.sharedInstance.initiateWithKey(...) runs — no separate setup step required.

Consolidated iOS QA Workflows

One SDK for shake-to-report bugs and automatic crash capture — no separate crash reporter to wire up alongside your bug tracker.

Automatic Crash Capture

Swift & Objective-C Crashes, Recorded Automatically

When the app crashes, Shakebug can auto-attach a screen recording of the last 18-20 seconds before the crash to the report. Every crash runs through the same Crash AI engine Shakebug uses for React Native, Android, Flutter, and web.

Capture Swift and Objective-C crashes on iOS
Flexible Bug Triggers

Shake, Screenshot, or a Manual Button

Let users report bugs by shaking the device or taking a screenshot, or call the SDK's trigger method from any button in your own UI — no dependency on the shake gesture alone.

Trigger an iOS bug report by shake, screenshot, or button
Remote Code & User Context

Tag Reports With User Data, Ship Config Without a Release

Attach custom user details to every report, and read dashboard-configured values at runtime to change app behavior without waiting on App Store review.

Remote config and custom user context for iOS bug reports

Grouped automatically, not just captured

A caught crash doesn't sit as a raw stack trace. Crash AI clusters duplicate iOS crashes into a single issue with a first-seen date, affected devices, and OS versions — the same engine Shakebug runs for React Native, Android, Flutter, and web. See how Crash AI grouping works →

iOS crashes grouped into single issues by Shakebug Crash AI, with affected devices and OS versions

What Our Customers Say About ShakeBug

Frequently Asked Questions

Does Shakebug support both Swift and Objective-C?

Yes. Shakebug's iOS SDK supports Swift, Objective-C, SwiftUI, and projects with or without a SceneDelegate, with a minimum iOS deployment target of 13.0.

What's the recommended way to install the iOS SDK?

Swift Package Manager is the recommended integration — add https://github.com/softnoesis/ShakeBug/ as a package dependency in Xcode. Carthage is also supported; CocoaPods integration is deprecated in favor of SPM.

Does Shakebug record video when the app crashes?

Yes. Shakebug can automatically attach a screen recording of the last 18-20 seconds before a crash to the report — this is controlled by a setting you can turn on or off.

Can users report bugs without shaking the device?

Yes. Besides shake-to-report, Shakebug supports triggering a bug report on screenshot capture, or from a manual button call in your own UI.

Does the iOS SDK support remote config and custom user data?

Yes. You can read dashboard-configured values at runtime to change app behavior without an App Store review, and attach user id, name, email, country, and custom notes to every report and crash.

Ready to Ship Fewer iOS Bugs?

Sign Up Free

No credit card required