> ## Documentation Index
> Fetch the complete documentation index at: https://rive-runtime-changelog.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Native SDK Version Customization

> How to override the underlying iOS or Android Rive Native SDK version used by Rive React Native

<Warning>
  **⚠️ Advanced Configuration**
  This section is for advanced users who need to use specific versions of the Rive native SDKs. In most cases, you should use the default versions that come with the library. Only customize these versions if you have a specific requirement and understand the potential compatibility implications.

  **Important:** If you customize the native SDK versions and later update Rive React Native to a newer version, you should revisit your custom version settings. The custom versions you specified may not be compatible with the updated Rive React Native version. Always check the default versions in the new release and test thoroughly.
</Warning>

### Default Behavior

By default, Rive React Native pins the native SDK versions in the library's own
`package.json` under `runtimeVersions`. The current release uses:

```json theme={null}
"runtimeVersions": {
  "ios": "6.21.1",
  "android": "11.7.2"
}
```

These are tested and known to work with this version of Rive React Native. To confirm the exact versions your installed release bundles, check `runtimeVersions` in `node_modules/@rive-app/react-native/package.json`.

### Customizing Versions

You can override these default versions using platform-specific configuration files.

See the available native Rive [Android](https://github.com/rive-app/rive-android/releases) and [iOS](https://github.com/rive-app/rive-ios/releases) versions.

#### iOS (Vanilla React Native)

Create or edit `ios/Podfile.properties.json`:

```json theme={null}
{
  "RiveRuntimeIOSVersion": "6.21.1"
}
```

Then run:

```bash theme={null}
cd ios && pod install
```

#### Android (Vanilla React Native)

Add to `android/gradle.properties`:

```properties theme={null}
Rive_RiveRuntimeAndroidVersion=11.7.2
```

#### Expo Projects

For Expo projects, use config plugins in your `app.config.ts`:

```typescript theme={null}
import { ExpoConfig, ConfigContext } from "expo/config";
import { withPodfileProperties } from "@expo/config-plugins";
import { withGradleProperties } from "@expo/config-plugins";

export default ({ config }: ConfigContext): ExpoConfig => ({
  ...config,
  plugins: [
    [
      withPodfileProperties,
      {
        RiveRuntimeIOSVersion: "6.21.1",
      },
    ],
    [
      withGradleProperties,
      {
        Rive_RiveRuntimeAndroidVersion: "11.7.2",
      },
    ],
  ],
});
```

### Version Resolution Priority

The library resolves versions in the following order:

**iOS:**

1. `ios/Podfile.properties.json` → `RiveRuntimeIOSVersion`
2. `package.json` → `runtimeVersions.ios` (default)

**Android:**

1. `android/gradle.properties` → `Rive_RiveRuntimeAndroidVersion`
2. `package.json` → `runtimeVersions.android` (default)
