CrumbDocs
Quickstarts

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.git

Choose 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

  1. Build and launch the app with your real project setup values.
  2. Open the reporter and inspect the screenshot.
  3. Confirm UITextField and UITextView contents are masked.
  4. Submit “Crumb integration check” and leave the app foregrounded while delivery completes.
  5. Find the report in the matching project and development environment in the dashboard.

Troubleshooting

SymptomNext check
CrumbUI import failsLink both SPM products, or install the CrumbSDK pod and open the workspace.
Reporter does not openCheck that configuration succeeded and reporter installation ran on the main actor.
No dashboard reportCheck the key and ingestion URL. Without a URL, submitted reports stay in the local queue.
A custom region is visible in a screenshotAdd 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.

On this page