iOS / Apple (CatchDev)
CatchDev is the Apple SDK for catch.dev. Its v1 focuses on user feedback: your
users shake their device, see a screenshot of the current screen, annotate it, add a
note, and submit — and it lands in your dashboard under App → Feedback. It's the
Apple sibling of the Android and Web feedback SDKs —
every platform speaks the same wire contract.
Requires iOS / iPadOS 15+. This SDK captures user feedback, not crashes — for error tracking, use the
@catch.dev/*error SDKs.
1. Install
Early access: the repository is private during early access, so SPM resolution requires repo access — contact us to get added. CocoaPods publishing lands at public launch.
Swift Package Manager (recommended)
In Xcode: File → Add Package Dependencies… and enter:
https://github.com/catchdotdev/catchdev-apple.git
Or in Package.swift:
.package(url: "https://github.com/catchdotdev/catchdev-apple.git", from: "0.1.0")
CocoaPods (at public launch)
pod 'CatchDev'
2. Get your access key
In the dashboard, open your app and go to API Keys. Create a key and copy it.
3. Start the SDK
SwiftUI
import SwiftUI
import CatchDev
@main
struct MyApp: App {
init() {
CatchDev.start(apiKey: "ck_your_key")
}
var body: some Scene { WindowGroup { ContentView() } }
}
UIKit
import CatchDev
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
CatchDev.start(apiKey: "ck_your_key")
return true
}
Objective-C
@import CatchDev;
[CDVCatchDev startWithApiKey:@"ck_your_key"];
Shake-to-report is enabled by default. On the Simulator, trigger a shake with Device → Shake (⌃⌘Z).
4. Options
CatchDev.setUser(id: "123", email: "user@example.com") // attach an identity
CatchDev.setMetadata(["screen": "Checkout"]) // custom key/values
CatchDev.setEnvironment("production") // tag the environment
CatchDev.isShakeToReportEnabled = false // disable the shake trigger
CatchDev.onFeedbackSent = { result in print(result) } // delivery callback
CatchDev.isDebugLoggingEnabled = true // console diagnostics
CatchDev.presentReporter() // open the reporter manually
5. View feedback
Submitted reports appear in the dashboard under App → Feedback, with the annotated screenshot, the message, and device context.
Privacy
Screenshots are captured on-device and may contain personal data. Nothing is sent
until the user taps Send. Disable automatic capture with
CatchDev.isShakeToReportEnabled = false and trigger CatchDev.presentReporter()
yourself if you need tighter control over when the reporter can appear.