This guide will help you install and set up the Linkrunner SDK in your Expo application.
Migrating from an older version? For instructions on upgrading from 1.x.x/2.x.x to version 3.x.x, see the Migration Guide.

Requirements

  • Expo SDK 52.0 or higher
  • Node.js 18.0 or higher
  • React Native 0.70 or higher

Installation

Step 1: Install Both Packages

Install both the React Native and Expo packages:
npm install rn-linkrunner

npx expo install expo-linkrunner

Configuration

Add Plugin to app.json

Important: You must add the expo-linkrunner plugin to your app.json plugins array:
{
    "expo": {
        "plugins": [
            [
                "expo-linkrunner",
                {
                    "userTrackingPermission": "This identifier will be used to deliver personalized ads.",
                    "debug": true
                }
            ]
        ]
    }
}

What the expo-linkrunner plugin does?

When you add expo-linkrunner to your app.json plugins and run the Expo prebuild step, the config plugin automatically makes the following changes to your iOS project:
  • Adds NSUserTrackingUsageDescription in your iOS Info.plist if not already present.
  • Automatically applies the expo-tracking-transparency plugin with a default permission message
These changes are required for IDFA (Identifier for Advertisers) tracking and to comply with Apple’s App Tracking Transparency (ATT) requirements.

Next Steps

The expo-linkrunner package is a config plugin that automatically configures your Expo project for Linkrunner SDK integration. Once you’ve completed the installation and configuration steps above:
  1. Prebuild your project:
    • For EAS Build: If your android and ios folders are in .gitignore (recommended), EAS Build will automatically run the prebuild step during the build process. No manual action required.
    • For local development or custom development clients:
      npx expo prebuild
      
  2. Follow the React Native usage guide: Since expo-linkrunner is a config plugin that prepares your project, the actual SDK usage is identical to React Native. Please refer to the React Native Usage Guide for:
    • Initializing the SDK
    • Tracking events
    • Handling deep links
    • Advanced features
The expo-linkrunner plugin handles the native configuration automatically. All SDK methods and APIs are provided by the rn-linkrunner package, which is why you’ll use the React Native documentation for implementation details.