MMP SDKs for iOS (native)
Native iOS attribution SDKs for Swift and Objective-C apps, from CocoaPods, Swift Package Manager and each vendor's docs.
9 of the 9 MMPs tracked here publish an official iOS (native) SDK: Adjust, Airbridge, AppMetrica, AppsFlyer, Branch, Kochava, Linkrunner, Singular and Tenjin.
iOS (native) pinout: one pin per MMP
Filled pins have an official SDK. Pins are in A to Z order.
iOS (native) SDKs compared
Last checked 2 Nov 2026. Package, version and licence from CocoaPods and SPM; minimum OS from podspecs, Gradle files and vendor docs.
| MMP | Status | Package | Registry | Version | Licence | Minimum OS | Repo | Install docs | Notes |
|---|---|---|---|---|---|---|---|---|---|
| Official | Adjust | CocoaPods + SPM | 5.8.1 | MIT | iOS 12.0 | Source | Install docs | Swift Package Manager supported via github.com/adjust/ios_sdk; Carthage also documented. | |
| Official | airbridge-ios-sdk | CocoaPods (Airbridge specs repo) + SPM | 4.12.0 | Not published | iOS 12 | Source | Install docs | Swift Package Manager via ab180/airbridge-ios-sdk-deployment; newer pods come from Airbridge's own CocoaPods specs repo. | |
| Official | AppMetricaAnalytics | CocoaPods + SPM | 7.0.0 | MIT | iOS 15.0 | Source | Install docs | SPM supported via the repo Package.swift; a 6.7.1 maintenance release followed 7.0.0. | |
| Official | AppsFlyerFramework (SPM product AppsFlyerLib) | CocoaPods + SPM | 7.0.4 | Proprietary | iOS 12.0 | Source | Install docs | SPM available since 6.1.0 via AppsFlyerFramework-Static, -Dynamic and -Strict repos; binary only, no source. | |
| Official | BranchSDK | CocoaPods + SPM | 3.14.2 | MIT | iOS 12.0 | Source | Install docs | Swift Package Manager via BranchMetrics/ios-branch-sdk-spm; a 4.0 beta is also on CocoaPods. | |
| Official | KochavaMeasurement (+ required KochavaNetworking; optional KochavaTracking) | Swift Package Manager (GitHub) | 11.0.0 | Proprietary (Kochava terms) | iOS 15.5 | Source | Install docs | Since v8 distributed exclusively via Swift Package Manager; CocoaPods pods (KochavaTracker etc.) are legacy. | |
| Official | LinkrunnerKit | CocoaPods + SPM | 4.3.2 | MIT | iOS 15.0 | Source | Install docs | Swift Package Manager supported (docs lead with SPM); requires Swift 5.9. | |
| Official | Singular-SDK | CocoaPods + SPM | 12.14.2 | MIT | iOS 12.0 (CocoaPods); iOS 15 (SPM) | Source | Install docs | SPM via github.com/singular-labs/Singular-iOS-SDK, whose latest tag (12.16.0) is ahead of CocoaPods (12.14.2). | |
| Official | TenjinSDK | CocoaPods + SPM | 1.20.1 | MIT | iOS 12.0 | Source | Install docs | SPM via github.com/tenjin/tenjin-ios-sdk (also tenjin-ios-spm). |
"Not published" means no primary source states the value; it does not mean there is no minimum. Registry and repo links are for reference.
What the SDK needs from you
The setup steps that apply to any attribution SDK in a iOS app. Each vendor datasheet lists that vendor's own requirements.
- InstallSwift Package Manager or CocoaPods. Some vendors now publish newer versions through SPM first; Kochava distributes only through SPM since v8.
- Minimum iOSRanges from iOS 12 to iOS 15.5 across the vendors here. Your deployment target must be at or above the SDK's.
- ATT promptAdd
NSUserTrackingUsageDescriptionand request authorisation withATTrackingManager. Without consent the IDFA is all zeros, and attribution falls back to other signals and SKAN. - SKAN and AdAttributionKitAdd
NSAdvertisingAttributionReportEndpointto Info.plist if your MMP wants copies of postbacks, and check whether the SDK updates conversion values for you. - Deep linksEnable the Associated Domains capability with
applinks:<your link domain>, host the apple-app-site-association file (most MMPs host it on their link domain) and forwardcontinueUserActivityand URL opens to the SDK. - Privacy manifestCheck the SDK ships a
PrivacyInfo.xcprivacyfile and include its data types in your App Store privacy answers.
Questions
Which MMPs have an official iOS (native) SDK?
9 of the 9 MMPs tracked here publish an official iOS (native) SDK: Adjust, Airbridge, AppMetrica, AppsFlyer, Branch, Kochava, Linkrunner, Singular and Tenjin.
How do I install an MMP SDK in a iOS app?
Add the Swift package in Xcode or the pod to your Podfile, then initialise the SDK early in the app's launch.
Do I need ATT consent to use an MMP SDK on iOS?
No. The SDK runs and can attribute without it, using SKAN, AdAttributionKit and any deterministic signal such as a deep link click. Consent only unlocks the IDFA for user-level matching.
Should I use CocoaPods or Swift Package Manager?
Either works where the vendor publishes both. Check which channel carries the newest release: Kochava, for example, distributes its iOS SDK only through Swift Package Manager since v8, and Airbridge's newest versions are on its SPM repository ahead of CocoaPods trunk.
What is an MMP SDK?
An MMP SDK is the library a mobile measurement partner asks you to add to your app. It records the first open, in-app events and deep link opens, and sends them to the MMP so installs can be matched to the ad or link that drove them.
Is every MMP SDK open source?
No. Many wrappers and SDKs are MIT licensed, but some native SDKs are proprietary: AppsFlyer's native iOS and Android SDKs, Kochava's SDKs and AppMetrica's Flutter plugin are published under proprietary terms. The licence column in each table shows what the registry or repository states.
Other frameworks
- FW-RNReact Nativenpm install the vendor package, then run pod install in the ios folder. Autolinking wires up the native side.9 of 9 official
- FW-FLFlutterflutter pub add the package, then check the iOS deployment target in the Podfile and minSdk in android/app/build.gradle.8 of 9 official
- FW-EXExponpx expo install the package, add its config plugin to app.json, then npx expo prebuild and run a development build. Expo Go cannot load these native SDKs.6 of 9 official
- FW-UNUnityAdd the package by Git URL in Unity Package Manager or import the .unitypackage, then resolve native dependencies (often with EDM4U) before building for iOS and Android.8 of 9 official
- FW-CPCapacitornpm install the plugin, then npx cap sync to copy it into the iOS and Android projects.4 of 9 official
- FW-CDCordovacordova plugin add the package, then rebuild both platforms.7 of 9 official
- FW-ANDAndroid (native)Add the artifact to your Gradle dependencies (and the vendor's Maven repository if it is not on Maven Central), then initialise the SDK in Application.onCreate.9 of 9 official
- FW-WEBWebAdd the vendor's script tag or npm package to the site, then initialise it with your app or project key.7 of 9 official