Changelog

Expo support with a config plugin

ExpoSDK 0.4.0CLI 0.4.0

FireOTA now works in Expo apps (SDK 50+) with development and release builds and EAS Build. A config plugin re-applies the native setup on every prebuild.

Expo SDK 50 and newer are supported with development and release builds (npx expo run:android, EAS Build). Expo Go is not supported, because it cannot load native code.

npx expo install @fireota/react-native
npm install --save-dev @fireota/cli
npx fireota init

What fireota init does in an Expo project

  • Adds the config plugin to app.json, so every expo prebuild and EAS Build re-applies the native change. android/ and ios/ don't need to be committed.
  • Wraps your root component with withFireOTA: the root layout (app/_layout.tsx) with expo-router, otherwise registerRootComponent(App).
  • Uses expo.version from app.json as the runtime version.
{ "expo": { "plugins": ["@fireota/react-native"] } }

Publishing

fireota publish bundles Expo apps with expo export:embed and the same entry point as the native build, expo-router included.

expo-updates must not be installed alongside FireOTA, because both replace the bundle at launch. The plugin stops the build if it finds it; set { "allowExpoUpdates": true } in the plugin options while migrating.

Follow