Note that Superwall does not refetch its configuration during hot reloads. So, if you add products, edit a paywall, or otherwise change anything with Superwall, re-run your app to see those changes.

Option 1: React-Native package

To use Superwall in your React Native project, add @superwall/react-native-superwall as a dependency in your package.json file by using npm or yarn:

Option 2: Using Expo

If you have an Expo project, you can add the dependency with npx:

npx expo install @superwall/react-native-superwall

Please note that Superwall does not support Expo Go. Expo Go only supports prebuilt Expo libraries; it cannot load third-party SDKs with custom native code. If you are using a managed workflow, create a development build to continue using Expo tools while including Superwall.

Here’s a quick table to review your installation methods:

WorkflowSuperwall SupportNotes
Expo Go❌ Not supportedExpo Go cannot load native SDKs.
Managed Workflowℹ️ Requires additional stepUse a Development Build.
Development Build✅ SupportedWorks with Expo tools + custom code.
Unmanaged (Bare)✅ SupportedFull control over native code.

iOS Deployment Target

Superwall requires iOS 14.0 or higher. Ensure your React Native project’s iOS deployment target is 14.0 or higher by updating ios/Podfile.

platform :ios, '14.0'

Android Configuration

For Android projects, you’ll also need to include Superwall’s Maven repository.

First, install the expo-build-properties config plugin if your Expo project hasn’t yet:

npx expo install expo-build-properties

Then, add the following to your app.json or app.config.js file:

{
  "expo": {
    "plugins": [
      ...
      [
        "expo-build-properties",
        {
          "android": {
            "minSdkVersion": 26
          }
        }
      ]
    ]
  }
}
And you’re done! Now you’re ready to configure the SDK 👇