File: local-app-overview.md | Updated: 11/15/2025
Hide navigation
Search
Ctrl K
Home Guides EAS Reference Learn
Archive Expo Snack Discord and Forums Newsletter
Copy page
An overview on local app compilation process for your Expo apps.
Copy page
You can leverage your local development environment to compile your app locally by utilizing Android Studio and Xcode. This compilation process can be done for both debug and release builds. This page provides an overview of the local app compilation process and references to other guides that might be necessary in this workflow.
When to compile your app locally
There are different scenarios when you want to compile your app on your developer machine. It includes:
Note: Compiling your app locally complements EAS Build. You can keep using the build service for cloud automation and fall back to local builds for development.
You need to install and set up Android Studio and Xcode to compile and run Android and iOS projects on your local machine. See the following guides on how to set up these tools:
To quickly build and iterate on a debug build, you can use Expo CLI's npx expo run:[android|ios] commands. These commands compile your project, using your locally installed Android SDK or Xcode, into a debug build of your app.
Local app development
Learn how to compile and build your Expo app locally.
To create a release build (also known as production build) of your app, you generate signing credentials by utilizing tools provided by Android Studio and Xcode. Then, you can generate a release build and follow the process of manually submitting your app to Google Play Store or Apple App Store.
Reuse previous builds from a provider
You can accelerate your local development by caching and reusing builds from a provider. You can use EAS as a build provider or create your own custom provider.
Prebuilt Expo Modules for Android
SDK 53 and later ship with prebuilt Expo Modules for Android that reduce the work Gradle performs on each build. You can continue using the defaults or selectively opt out when you need to modify a module's source code.