Quickstart
Get your API key from your project settings at dash.1sygnal.app . Add it to Info.plist first (see Install):
<key>OneSygnalApiKey</key>
<string>YOUR_API_KEY</string>Then, in your app:
import OneSygnalSDK
OneSygnal.shared.initialize { success in
guard success else { return }
OneSygnal.shared.track("page_viewed")
OneSygnal.shared.identify("user_123", attributes: ["plan": "pro"])
}Or with async/await — same-name overloads exist for initialize, identify,
logout, reset, and shutdown, and Swift resolves the right one at each call site:
import OneSygnalSDK
Task {
let success = await OneSygnal.shared.initialize()
guard success else { return }
OneSygnal.shared.track("page_viewed")
_ = await OneSygnal.shared.identify("user_123", attributes: ["plan": "pro"])
}That’s it — surveys matching your active trigger rules will show automatically, rendered
in their own UIWindow above the rest of your app. No conformance is required on your
AppDelegate, SceneDelegate, or any UIViewController.
initialize() needs no apiUrl argument — it defaults to https://sdk-api.1sygnal.app
with zero config, and the API key comes from Info.plist. track() returns Bool
synchronously (false if not yet initialized or if surveys are disabled); identify()’s
completion/async result reflects whether the identify call actually succeeded against the
backend.
If you need to know when the SDK is ready before making calls, subscribe to the ready
event — see Events. A listener registered after ready already
fired still receives it (a replay latch), so registration order relative to initialize()
doesn’t matter.