Skip to main content
Documentation
SDKs

SDK Overview

WarpLink SDKs for iOS, Android, React Native, and Flutter: Universal Links, App Links, deferred deep links, and install attribution.

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 Keys > SDK keys and pre-scoped for link resolution and install attribution. API keys are for backend scripts, CI, and AI agents, and they cannot record installs. An SDK key can be tied to one app, so a key shipped in one app cannot act as another. Choose the app when you create the key, or pick Any app.

Platform Support

PlatformLanguageDistributionMin VersionSource
iOSSwiftSwift Package ManageriOS 15+GitHub
AndroidKotlinMaven CentralAPI 26+GitHub
React NativeTypeScriptnpmRN 0.75+GitHub
FlutterDartpub.devFlutter 3.38+GitHub

All four SDKs are currently at version 1.1.1. See the SDK changelog for what changed and how to upgrade, or the WarpLink SDK 1.1.0 release post for a walkthrough.

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 probabilistic matching 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

FeatureiOSAndroidReact NativeFlutter
Cold + warm deep linksAutomatic (SDK delegate or one-liner)Automatic cold start, onNewIntent one-liner for warm startAutomatic once the iOS AppDelegate forwards URLs to the SDKAutomatic on both platforms, no host code
Deferred checkAutomatic on configure()Automatic on configure()Automatic on configure()Automatic on configure()
Deterministic matchNone: the App Store passes nothing through an installPlay Install ReferrerPlay Install Referrer on Android only (bridged)Play Install Referrer on Android only (wraps the native SDKs)
Probabilistic matchEnriched probabilistic matchEnriched probabilistic matchEnriched probabilistic matchEnriched probabilistic match
Debug logging[WarpLink] in Xcode consoleWarpLink Logcat tagSame debugLogging option, bridged to native console/Logcat outputSame debugLogging option, written to the native console/Logcat output
Custom link domainslinkDomains option, or a WarpLinkDomains array in Info.plistlinkDomains option, or an app.warplink.DOMAINS meta-data entrylinkDomains option, forwarded to the native SDKslinkDomains option, forwarded to the native SDKs