SDK Overview
WarpLink SDKs for iOS, Android, and React Native. Add deep linking, deferred deep links, and install attribution to your app.
WarpLink provides native SDKs for all major mobile platforms. Each SDK handles deep link resolution, deferred deep links, and install attribution with zero third-party dependencies.
Every SDK authenticates with an SDK key, created in the dashboard under API Keys > SDK key and pre-scoped for link resolution and install attribution. API keys are for backend scripts, CI, and AI agents, and they cannot record installs.
Platform Support
| Platform | Language | Distribution | Min Version | Source |
|---|---|---|---|---|
| iOS | Swift | Swift Package Manager | iOS 15+ | GitHub |
| Android | Kotlin | Maven Central | API 26+ | GitHub |
| React Native | TypeScript | npm | RN 0.75+ | GitHub |
What Each SDK Does
- Deep link resolution: Resolves WarpLink short URLs into destination URLs with metadata
- Universal Links / App Links: Handles platform-native deep link entry points (cold start and warm start)
- Deferred deep links: Matches app installs to link clicks using fingerprinting and device IDs
- Install attribution: Reports match type (deterministic/probabilistic) and confidence scores
- Custom link domains: You declare the domains you serve links from, so a link on your own domain resolves on the very first launch, with no network round trip
Opt-Out by Default
A single configure() call with an onLink callback wires up everything: cold start, warm start, and the deferred deep link check all fire automatically. The one onLink sink receives every resolved link, whether it arrived from a tap or from a deferred install match (check isDeferred to tell them apart).
Each piece is individually opt-out. Turn off automatic deep link handling or the deferred check with a flag on your options, and drive the flow yourself with the manual methods. You only add code when you want less, not more.
SDK Design Principles
All WarpLink SDKs follow the same design:
- Zero dependencies: No third-party libraries. Only platform APIs.
- Privacy-first: No IDFA, no GAID, no cross-app tracking. ATT-exempt on iOS.
- Main-thread callbacks: All completion handlers are dispatched to the main thread for safe UI updates.
- One call, everything wired:
configure({ apiKey, onLink })handles cold start, warm start, and deferred attribution. Each is opt-out with a single flag. - Cached attribution: Deferred deep link checks happen once per install. Results are cached locally.
Quick Comparison
| Feature | iOS | Android | React Native |
|---|---|---|---|
| Cold + warm deep links | Automatic (SDK delegate or one-liner) | Automatic cold start, onNewIntent one-liner for warm start | Automatic once the iOS AppDelegate forwards URLs to the SDK |
| Deferred check | Automatic on configure() | Automatic on configure() | Automatic on configure() |
| Deterministic match | IDFV | Play Install Referrer | Platform-specific (bridged) |
| Probabilistic match | Enriched fingerprint | Enriched fingerprint | Enriched fingerprint |
| Debug logging | [WarpLink] in Xcode console | WarpLink Logcat tag | __DEV__ console logs |
| Custom link domains | linkDomains option, or a WarpLinkDomains array in Info.plist | linkDomains option, or an app.warplink.DOMAINS meta-data entry | linkDomains option, forwarded to the native SDKs |