Framework guides

React Native & Expo

1 min read

Lunadeck supports building React Native apps using both Expo and bare React Native workflows.

Expo projects

For Expo-managed projects, Lunadeck handles the entire build process:

  1. Detects your app.json or app.config.js
  2. Runs expo prebuild to generate native projects
  3. Compiles the Android APK using Gradle

Requirements

  • Expo SDK 49 or later
  • A valid app.json with android.package configured

Example app.json

{
  "expo": {
    "name": "My App",
    "slug": "my-app",
    "android": {
      "package": "com.mycompany.myapp"
    }
  }
}

Bare React Native

For bare React Native projects (without Expo):

  1. Ensure the android/ directory is present
  2. Lunadeck will run your build script and compile the APK
  3. All native dependencies should be linked

Requirements

  • React Native 0.72 or later
  • An android/ directory with a valid Gradle configuration

Common issues

  • Missing native modules — Ensure all native dependencies are properly linked
  • Gradle version mismatch — Lunadeck uses Gradle 8.x by default
  • SDK version conflicts — Check that your compileSdkVersion matches a supported version