Swift SDK

Native in-app support for your iOS app

One Swift Package puts support conversations, bug reports and a feedback board inside your iOS app — no Flutter, no React Native, no web view. Your team answers from one dashboard; replies stream in live and arrive as APNs push notifications.

clariodesk-swift on Swift Package Manager · Live in 10 minutes · No backend to deploy

How it works

Three calls and you're live

No webhooks, no OAuth dance, no support backend to build. Devices register themselves with hardware-backed keys, so there's no user-auth plumbing either.

1. Install the package

// Xcode: File → Add Package Dependencies…, or in Package.swift:
.package(url: "https://github.com/clariodesk/clariodesk-swift", from: "0.1.1")

// Products: ClarioDesk (headless) and/or ClarioDeskUI (prebuilt screens)

2. Initialize once at app start

import ClarioDesk

// Synchronous and fire-and-forget — drops into App.init or your AppDelegate
// with no await. First launch generates a Secure Enclave key and registers it.
ClarioDesk.initialize(.init(apiKey: "pk_live_…"))

// Optional — after your own auth knows who the user is.
ClarioDesk.identify(externalId: user.id, email: user.email)

3. Open the support UI

Prebuilt and themeable, or skip it entirely and build your own on the headless API.

import ClarioDeskUI

ClarioDeskWidgets.openInbox()                 // the user's conversations
ClarioDeskWidgets.openNewTicket()             // straight into the composer
ClarioDeskWidgets.openBugReport()             // bug report form, auto-screenshot
ClarioDeskWidgets.openConversation(ticketId)  // the push deep-link target
Built for Swift

What's specific to Swift

All three ClarioDesk SDKs share one frozen contract, so every feature behaves the same everywhere. These are the parts that are particular to Swift.

Secure Enclave device keys

The device identity is a P-256 key generated by CryptoKit in the Secure Enclave, with a software fallback on the simulator. No user auth to plumb, no shared secret in your binary.

SwiftUI and UIKit, same call

One static call presents the UI as a self-owned modal on the top-most view controller, so it behaves identically from a SwiftUI or a UIKit host. Full-screen on iPhone, a centered form sheet on iPad.

APNs push with zero Firebase

Forward the device token from your AppDelegate and you're done. Native iOS hosts never need to ship the Firebase SDK just to get a reply notification.

What you get

One SDK, the whole customer relationship

Support, bug reports and feedback share one customer record — so the person who joined your waitlist, filed a bug and voted for dark mode is one person, not three strangers.

  • Support conversations with live streaming replies
  • Push notifications when the app is closed
  • Bug reports with device, OS, version, network and logs attached
  • Photos, video and file attachments both ways
  • An in-app feedback board with voting
  • A satisfaction rating on every resolve
  • One-click escalation to a pre-filled Linear issue
  • RevenueCat subscription status on every ticket
FAQ

Swift questions, answered

Add the clariodesk-swift package in Xcode, call ClarioDesk.initialize(.init(apiKey:)) with your publishable pk_live_ key in App.init or your AppDelegate, and present the prebuilt UI with ClarioDeskWidgets.openInbox(). There is no backend to deploy and no user-auth plumbing — the device registers itself with a Secure Enclave key.

Yes. The prebuilt UI is built in SwiftUI but presents itself as a self-owned modal on the top-most view controller, so a UIKit host calls exactly the same static method with no bridging and no setup. Your navigation stack is never touched.

No. The Swift SDK uses APNs directly — you forward the device token from your AppDelegate and nothing else is required. Firebase is only involved on Android and in the cross-platform SDKs.

Yes — all three are expressions of one frozen contract, so they send identical wire bytes and share the same state machines. A ticket opened from a Swift app is indistinguishable from one opened in Flutter, and your dashboard treats them the same.

Be first in line when
ClarioDesk launches

We onboard the waitlist in small batches. Early users get hands-on integration help — from a human — and a real vote on what ships next, starting with the feedback board.

No spam, ever. We'll only email you about ClarioDesk.