iOS
Send your first native report with Swift Package Manager or CocoaPods.
This quickstart uses 0.0.1-rc.3, the published preview, and requires iOS 15 or newer. Build with Swift 6 / Xcode 16 or newer, as required by the package manifest. Install the UI product as well as Core so the app can show the reporter.
1. Install the SDK
In Xcode, select File → Add Package Dependencies and enter:
https://github.com/alexander126/crumb.gitChoose the exact version 0.0.1-rc.3. Add both CrumbCore and CrumbUI to your application target.
For a manifest-managed project, add the dependency:
.package(
url: "https://github.com/alexander126/crumb.git",
exact: "0.0.1-rc.3"
)Then add these products to the target dependencies:
.product(name: "CrumbCore", package: "crumb"),
.product(name: "CrumbUI", package: "crumb")2. Configure at launch
Replace the key and ingestion URL with your project's SDK setup values. Call this once from application(_:didFinishLaunchingWithOptions:) or your equivalent application startup path, on the main actor:
import CrumbCore
import CrumbUI
import Foundation
@MainActor
func configureCrumb() throws {
guard let apiURL = URL(string: "https://api.example.com") else {
return
}
let appVersion = Bundle.main.object(
forInfoDictionaryKey: "CFBundleShortVersionString"
) as? String ?? "unknown"
let nativeBuild = Bundle.main.object(
forInfoDictionaryKey: "CFBundleVersion"
) as? String ?? "unknown"
try Crumb.start(CrumbConfiguration(
projectKey: "crumb_sdk_replace_me",
environment: "development",
release: CrumbRelease(
appVersion: appVersion,
nativeBuild: nativeBuild
),
upload: CrumbUploadOptions(ingestionURL: apiURL)
))
Crumb.installReporter()
}Handle a thrown configuration error through your app's startup error handling. For a SwiftUI app, use an application delegate connected with @UIApplicationDelegateAdaptor, or another once-only main-actor startup path.
3. Open the reporter
From an application-owned button, on the main actor:
Crumb.show()The installed reporter also supports shaking a foreground app. Use the explicit button for the first simulator check.
4. Verify the report
- Build and launch the app with your real project setup values.
- Open the reporter and inspect the screenshot.
- Confirm
UITextFieldandUITextViewcontents are masked. - Submit “Crumb integration check” and leave the app foregrounded while delivery completes.
- Find the report in the matching project and
developmentenvironment in the dashboard.
Troubleshooting
| Symptom | Next check |
|---|---|
CrumbUI import fails | Link both SPM products, or install the CrumbSDK pod and open the workspace. |
| Reporter does not open | Check that configuration succeeded and reporter installation ran on the main actor. |
| No dashboard report | Check the key and ingestion URL. Without a URL, submitted reports stay in the local queue. |
| A custom region is visible in a screenshot | Add explicit screenshot masking, then verify another report. |
Read diagnostics for native log providers and availability limits. This SDK does not install native fatal-crash handlers.