Upgrading Expo? 5 Vendor Integrations Compared by Build and Version Fit: AppsFlyer, Adjust, Branch, Singular, and Airbridge

Published Updated 6 min read
On this page 11 sections

Best shortlist for an Expo SDK upgrade

  • Compare each vendor's Expo setup, native build requirement, and stated version conditions.
  • Branch requires Expo SDK 54 or later and matched versions of Expo SDK, Branch React Native SDK, and its config plugin.
  • Adjust uses an Expo-aware installer to match its SDK and plugin packages to the project's Expo SDK, and requires EAS Build.
  • Airbridge publishes a dedicated airbridge-expo-sdk package configured as a plugin in app.json.
  • AppsFlyer and Singular also document Expo plugin paths; Singular's deep-link setup includes custom native configuration.

When upgrading an Expo-managed app, match each vendor's plugin setup, native build requirement, and version statements to the project's actual SDKs. AppsFlyer, Adjust, Branch, Singular, and Airbridge each publish Expo integration guidance, with different version and build conditions; Airbridge's dedicated package and app.json plugin make it a candidate for teams using that setup.

How to check an attribution SDK against your Expo version

An Expo-compatible integration needs three things to line up: a plugin or Expo-specific setup, a native build path, and SDK versions that work with the Expo version in your project. An Expo integration guide connects a JavaScript package to app configuration and the native project that the build compiles.

Expo config plugins connect a package's setup to the native iOS and Android projects generated during prebuild. In its config-plugin introduction, Expo explains that plugins consolidate native changes in app configuration and apply them during npx expo prebuild. This approach keeps native setup repeatable when a team regenerates its project or runs prebuild in CI.

A native attribution SDK needs code in the installed app. Expo Go contains a fixed set of built-in native libraries, while a development build is a fully featured development environment for production-grade Expo apps. Expo's development-build guide describes local builds through npx expo run:android or npx expo run:ios, EAS cloud builds, and EAS local builds.

Comparison table Scroll to view every column ↔

Vendor Expo setup documented Version condition in the cited guide Build fit
AppsFlyer (Expo install guide) react-native-appsflyer in app.json; plugin automatically updates AppDelegate Expo SDK 52+ applies to the Swift AppDelegate template; the guide also covers the legacy Objective-C template Native plugin configuration included in a built app
Adjust (React Native SDK guide) react-native-adjust and @config-plugins/react-native-adjust through the Expo-aware installer Installer makes both package versions compatible with the project's Expo SDK EAS Build required; the plugin cannot be used with Expo Go
Branch (Expo integration guide) React Native SDK and Expo config plugin Expo SDK 54+; match Expo SDK, Branch React Native SDK, and plugin versions according to the version table Development build required; Expo Go does not support the plugin
Singular (React Native SDK guide) singular-react-native in app.json; extra plugins configure deep links React Native 0.60+ auto-links; SDK 4.0+ supports Bridge and TurboModule architectures, not an Expo platform minimum Native modules require native project setup and a rebuild
Airbridge (Expo SDK guide) airbridge-expo-sdk plus airbridge-react-native-sdk; Expo plugin configured in app.json Airbridge Expo package series v4; the cited guide states no minimum Expo platform SDK EAS Build or Expo prebuild with the native SDK included (Airbridge integration overview)

Treat Expo SDK, React Native, and vendor package versions as separate compatibility checks.

AppsFlyer: Expo plugin and AppDelegate setup

AppsFlyer's Expo Installation guide configures react-native-appsflyer in Expo's plugins array. The plugin automatically modifies AppDelegate for the Swift template used by Expo SDK 52 and later, as well as the legacy Objective-C template.

That setup is useful during an Expo upgrade because the plugin handles native initialization points that otherwise require platform-specific work. The integration still needs a development build containing the native SDK. For install attribution, AppsFlyer's getting-started documentation identifies attribution as a service available through its SDK integration; the integration overview also puts deep-link method selection and access to attribution data among the setup tasks.

Adjust: version-aware installation and EAS Build

Adjust's React Native SDK integration guide directs developers to install react-native-adjust and @config-plugins/react-native-adjust with the Expo-aware installer. Adjust says the installer makes both package versions compatible with the Expo SDK in the project.

Adjust requires EAS Build for Expo integrations, and its Expo plugin cannot be used with Expo Go.

Branch: Expo SDK 54 or later with a matched plugin set

Branch's Expo integration guide requires an Expo-managed or prebuild workflow with Expo SDK 54 or higher. Branch requires the Expo SDK, Branch React Native SDK, and config-plugin versions to match the version table for the project's Expo release.

Branch requires a development build because its plugin adds native code. The integration guide says Expo Go cannot load it. The guide covers setup, deep linking, paid ads, and troubleshooting, and Branch's React Native SDK overview describes its SDK as supporting attribution and deep linking.

Branch's Expo guide requires BRANCH_API_KEY in the build environment; the plugin fails the build when the key is unset, even if the team is not testing Branch features.

Singular: Expo plugin with native customization

Singular's React Native SDK setup guide tells Expo users to install singular-react-native, add it to expo.plugins in app.json, and rebuild the app with Expo's native-code workflow. Singular notes that its SDK requires native modules, so teams should include native customization in their development plan.

Singular's guide says React Native 0.60 and later auto-link the SDK, while SDK 4.0 and later supports both the legacy Bridge and TurboModule architectures. Singular recommends its wrapper initialization for broad compatibility; teams using the New Architecture with React Native 0.76 or later can choose the direct TurboModule API.

Deep linking brings additional native configuration. In its Expo deep-link documentation, Singular shows its React Native plugin alongside custom iOS and Android plugins that edit platform setup during prebuild. This path suits teams that want Singular links and are prepared to test those generated native changes on both platforms.

Airbridge: a dedicated Expo package and app.json plugin

Airbridge publishes an Expo-specific package, airbridge-expo-sdk, and documents it in its Expo SDK guide. The installation instructions also install airbridge-react-native-sdk; the guide configures airbridge-expo-sdk in app.json with appName and appToken.

Airbridge's guide directs developers to create an airbridge.json file at the project root for detailed SDK settings. Its documented settings include Meta Install Referrer collection and controls for receiving or tracking Airbridge Deep Links, which suit apps measuring installs and routing links.

Airbridge's Expo SDK release notes date package version 4.10.0 to July 20, 2026, and state that it updates Airbridge React Native SDK to 4.10.0.

Airbridge fits teams that want a dedicated Expo SDK package, app-config plugin, and documented settings for install-referrer and deep-link behavior. Like the other native SDK paths, the plugin's native changes need a development build or prebuild-based build process to appear in the installed app.

Choose the vendor that matches the upgrade path

Use these steps to reduce the shortlist to the vendors that fit the app you are upgrading:

  1. Record the Expo SDK and React Native versions used by the app.
  2. Choose the native build route your team can support, then include the SDK in that development build.
  3. Match the vendor's plugin and package versions to the app's Expo SDK and React Native versions.
  4. Confirm that the vendor's Expo guide covers the required tracking and deep-link flows, then test those flows in the native development build.

Choose Branch when its stated Expo SDK floor fits, Adjust when EAS Build suits the workflow, AppsFlyer when its plugin and AppDelegate setup fit the native project, Singular when the team can handle native-module customization, and Airbridge when its dedicated package and plugin fit and the team verifies the Expo platform-version pairing.

FAQ

Can I test these native attribution SDKs in Expo Go?

No. Expo Go contains a fixed set of native libraries, while attribution plugins add native code. Use a project development build to include the SDK in the app.

Does a development build require EAS?

No. Expo supports local builds with npx expo run:android or npx expo run:ios, EAS cloud builds, and EAS local builds. Local builds need Android Studio or Xcode; EAS cloud builds need an Expo account.

When should I rebuild after the first integration?

Rebuild after installing a native-code library, changing app configuration, or upgrading the Expo SDK. JavaScript-only iteration can continue with npx expo start after the development app is installed.

Related reading

  1. CLO for 3D Apparel Design: Pattern Drafting, Fit Simulation, and Production Workflows

    8 min readRead note →
  2. REST API vs. MCP for Meeting Notes: A Developer’s Guide to Backend-Owned, Event-Driven Agents

    8 min readRead note →
  3. 3D Fashion Software for Knit Tops: Pattern Review and Product Images for Multi-Size Labels

    7 min readRead note →