---
title: MMP SDKs by Framework: Coverage for 9 Stacks
description: How many MMPs publish an official SDK for React Native, Flutter, Expo, Unity, Capacitor, Cordova, native iOS, native Android and the web, checked 2 Nov 2026.
url: https://mmpsdk.com/frameworks/
---

[Home](https://mmpsdk.com/) / Frameworks

# Attribution SDKs by *framework*

Nine app frameworks, nine MMPs. Open a framework to see every vendor's package, licence and minimum OS side by side.

**Short answer**

React Native has an official SDK from all 9 MMPs tracked here; Capacitor has the fewest, with 4. Every framework below has its own datasheet with the packages, licences, minimum OS versions and a setup checklist.

## How many MMPs support each framework?

| Framework | Official | Vendor-documented | Community only | None found |
|---|---|---|---|---|
| [React Native](https://mmpsdk.com/frameworks/react-native/) | 9 | 0 | 0 | 0 |
| [Flutter](https://mmpsdk.com/frameworks/flutter/) | 8 | 1 | 0 | 0 |
| [Expo](https://mmpsdk.com/frameworks/expo/) | 6 | 2 | 0 | 1 |
| [Unity](https://mmpsdk.com/frameworks/unity/) | 8 | 1 | 0 | 0 |
| [Capacitor](https://mmpsdk.com/frameworks/capacitor/) | 4 | 0 | 2 | 3 |
| [Cordova](https://mmpsdk.com/frameworks/cordova/) | 7 | 0 | 2 | 0 |
| [iOS (native)](https://mmpsdk.com/frameworks/ios/) | 9 | 0 | 0 | 0 |
| [Android (native)](https://mmpsdk.com/frameworks/android/) | 9 | 0 | 0 | 0 |
| [Web](https://mmpsdk.com/frameworks/web/) | 7 | 0 | 0 | 2 |

Checked 2 Nov 2026

## Framework datasheets

- [FW-RN **React Native** npm install the vendor package, then run pod install in the ios folder. Autolinking wires up the native side. *9 of 9 official*](https://mmpsdk.com/frameworks/react-native/)
- [FW-FL **Flutter** flutter pub add the package, then check the iOS deployment target in the Podfile and minSdk in android/app/build.gradle. *8 of 9 official*](https://mmpsdk.com/frameworks/flutter/)
- [FW-EX **Expo** npx 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*](https://mmpsdk.com/frameworks/expo/)
- [FW-UN **Unity** Add 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*](https://mmpsdk.com/frameworks/unity/)
- [FW-CP **Capacitor** npm install the plugin, then npx cap sync to copy it into the iOS and Android projects. *4 of 9 official*](https://mmpsdk.com/frameworks/capacitor/)
- [FW-CD **Cordova** cordova plugin add the package, then rebuild both platforms. *7 of 9 official*](https://mmpsdk.com/frameworks/cordova/)
- [FW-IOS **iOS (native)** Add the Swift package in Xcode or the pod to your Podfile, then initialise the SDK early in the app's launch. *9 of 9 official*](https://mmpsdk.com/frameworks/ios/)
- [FW-AND **Android (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*](https://mmpsdk.com/frameworks/android/)
- [FW-WEB **Web** Add the vendor's script tag or npm package to the site, then initialise it with your app or project key. *7 of 9 official*](https://mmpsdk.com/frameworks/web/)

## Coverage matrix

Official Vendor-documented Community only None found

| MMP | [React Native](https://mmpsdk.com/frameworks/react-native/) | [Flutter](https://mmpsdk.com/frameworks/flutter/) | [Expo](https://mmpsdk.com/frameworks/expo/) | [Unity](https://mmpsdk.com/frameworks/unity/) | [Capacitor](https://mmpsdk.com/frameworks/capacitor/) | [Cordova](https://mmpsdk.com/frameworks/cordova/) | [iOS](https://mmpsdk.com/frameworks/ios/) | [Android](https://mmpsdk.com/frameworks/android/) | [Web](https://mmpsdk.com/frameworks/web/) | Official |
|---|---|---|---|---|---|---|---|---|---|---|
| [Adjust](https://mmpsdk.com/mmp/adjust/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Vendor-documented](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [None found](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 7 of 9 |
| [Airbridge](https://mmpsdk.com/mmp/airbridge/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Community only](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 8 of 9 |
| [AppMetrica](https://mmpsdk.com/mmp/appmetrica/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Community only](https://mmpsdk.com/frameworks/capacitor/) | [Community only](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [None found](https://mmpsdk.com/frameworks/web/) | 6 of 9 |
| [AppsFlyer](https://mmpsdk.com/mmp/appsflyer/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Official](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 9 of 9 |
| [Branch](https://mmpsdk.com/mmp/branch/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Vendor-documented](https://mmpsdk.com/frameworks/flutter/) | [Vendor-documented](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Official](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 7 of 9 |
| [Kochava](https://mmpsdk.com/mmp/kochava/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [None found](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 8 of 9 |
| [Linkrunner](https://mmpsdk.com/mmp/linkrunner/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Vendor-documented](https://mmpsdk.com/frameworks/unity/) | [Official](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 8 of 9 |
| [Singular](https://mmpsdk.com/mmp/singular/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [Official](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [None found](https://mmpsdk.com/frameworks/capacitor/) | [Official](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [Official](https://mmpsdk.com/frameworks/web/) | 8 of 9 |
| [Tenjin](https://mmpsdk.com/mmp/tenjin/) | [Official](https://mmpsdk.com/frameworks/react-native/) | [Official](https://mmpsdk.com/frameworks/flutter/) | [None found](https://mmpsdk.com/frameworks/expo/) | [Official](https://mmpsdk.com/frameworks/unity/) | [Official](https://mmpsdk.com/frameworks/capacitor/) | [Community only](https://mmpsdk.com/frameworks/cordova/) | [Official](https://mmpsdk.com/frameworks/ios/) | [Official](https://mmpsdk.com/frameworks/android/) | [None found](https://mmpsdk.com/frameworks/web/) | 6 of 9 |

## Questions

**Which framework has the most MMP SDK coverage?**

React Native: all 9 vendors tracked here publish an official package. Native Android follows with 9, while Capacitor has the fewest at 4.

**Why use a framework SDK instead of the native SDKs?**

A framework SDK wraps the vendor's native iOS and Android SDKs and gives you one JavaScript, Dart or C# API. You still configure native settings such as ATT and deep links, but you call one API from shared code.

**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.

**What does official mean in these tables?**

Official means the vendor publishes the package itself. Vendor-documented means the vendor's docs describe the route but someone else maintains the package or plugin. Community only means only third-party packages exist.

**How often are these SDK facts checked?**

Every package, version, licence and minimum OS value was read from the package registry, the source repository or the vendor's docs on 2 Nov 2026. Where no primary source states a value, the table says Not published instead of guessing.
