Honestly, get an Android. All you have to do is drag the installer to your phone and run it. Done. No messing around with certs, provisioning profiles udids, dev accounts, or distribution etc. Apple is shit if you're a dev. Answer from Deleted User on reddit.com
🌐
Expo Documentation
docs.expo.dev › guides › local-app-development
Local app development - Expo Documentation
To create a development build, you can use local app compilation commands (npx expo run:[android|ios]) which will create a debug build and start the development server.
🌐
Expo Documentation
docs.expo.dev › guides › local-app-production
Create a release build locally - Expo Documentation
To create an iOS release build locally for Apple App Store, you need to use Xcode which handles the signing and submission process via App Store Connect. ... Inside your Expo project directory, run the following command to open your-project...
🌐
Expo Documentation
docs.expo.dev › build-reference › local-builds
Run EAS Build locally with local flag - Expo Documentation
However, we do not officially test against this platform and do not support Windows for local builds (macOS and Linux are supported). To compile your app locally for development with Expo CLI, use npx expo run:android or npx expo run:ios commands ...
🌐
Expo Documentation
docs.expo.dev › build-reference › ios-builds
iOS build process - Expo Documentation
Let's take a closer look at the steps for building iOS projects with EAS Build. We'll first run some steps on your local machine to prepare the project, and then we'll build the project on a remote service.
🌐
Expo Documentation
docs.expo.dev › develop › development-builds › create-a-build
Create a development build on EAS - Expo Documentation
To build locally without EAS requires your local development environment to be set up with native build tools. This is the only way to test your iOS build on an iPhone device without a paid Apple Developer Account (only possible on macOS).
🌐
Reddit
reddit.com › r/expo › is there really no simple way to build and run an expo app locally via xcode?
r/expo on Reddit: Is there really no simple way to build and run an Expo app locally via Xcode?
July 9, 2025 -

I'm trying to follow what I thought would be a straightforward local workflow:

  1. Start the Expo dev server with expo start

  2. Develop the app on the iOS simulator

  3. Once ready, open the Xcode project, build, and run it on the simulator

Unfortunately, step 3 fails because the app expects the Expo dev server (Metro) to be running to fetch the JS bundle. This seems like a hard requirement.

I suppose you could manually tweak the Xcode project to load the bundle as a local resource, but that feels counterintuitive and messy.

Also, eas build --local still requires both Expo build tools and an Apple developer account, so it's not a pure local solution either.

Am I missing something obvious here, or is this just how it works with Expo right now? Any tips or clarification would be appreciated — thanks!

EDIT:

When I say step 3 fails, I meant that is running the expo dashboard which requires the dev server to run. I just want to run it without the server i.e. as the production build.

🌐
Expo Documentation
docs.expo.dev › deploy › build-project
Build your project for app stores - Expo Documentation
Production builds are submitted ... explains how to create production builds with EAS and locally. It is also possible to create production builds for Expo apps with any CI service capable of compiling Android and iOS apps....
Find elsewhere
Top answer
1 of 2
7

With the current Expo SDK 50, using npx expo prebuild is the right starting point. After you did this, you need to build your project without relying on the metro server. This means, you have to build a standalone .ipa file for ios. You can do all of the following in Xcode by opening your ios/*.xcworkspace file.

  1. Change the Build Configuration: In Xcode -> Product -> Scheme -> Edit Scheme -> choose "Debug" -> Close
  2. Build the app: Product -> Build
  3. Archive your app: if there are no building errors -> Product -> Archive
  4. Export archived app: Window -> Organiser (this should open up automatically after step 3) -> select the archived build -> Distribute App -> Debug -> Perform signing procedure -> Select destination for .ipa file
  5. Install app on connected device: Connect device to your Mac -> Window -> Devices and Simulators -> Under "Installed Apps", click on "+" -> Select .ipa file
2 of 2
1

If you want to run your Expo app on your physical device without using the Expo Go app and an Expo server, you would need to create a standalone app binary (an IPA file for iOS).

This process involves "ejecting" from the managed Expo workflow to gain more control over the build process. Here's the general process:

  • Run expo eject in your project directory. This will create native iOS and Android project directories and configuration files.

  • For iOS, you'll now have an ios folder in your project directory. You can open this in Xcode by navigating to the directory and opening the .xcworkspace file.

  • From Xcode, you can run your app on a connected device by selecting the device from the target device list and clicking the "play" button.

Please note: In order to install the app on a physical device, you'll still need an Apple Developer account, even if it's just the free version. You'll have to sign your app with a development certificate. The app will also only run as long as the development certificate is valid, which is typically 7 days for a free Apple Developer account. After this period, you'll need to re-sign and re-install the app.

If you're looking for a way to run your app on your physical device indefinitely without an Apple Developer account, unfortunately, this is not possible due to Apple's policies.

🌐
Expo Documentation
docs.expo.dev › tutorial › eas › ios-production-build
Create a production build for iOS - Expo Documentation
Select Build credentials and choose All: Set up all the required credentials to build your project. Now, it will prompt whether we want to re-use the previous Distribution Certificate. Press Y. Generate a new Apple Provisioning Profile? Press Y. This will be the provisioning profile for the production app. Once the profiles are created, press any ctrl + c to exit the EAS CLI. ... To create an iOS production build using the default production profile, open your terminal and execute the following command.
🌐
Expo Documentation
docs.expo.dev › build-reference › simulators
Build for iOS Simulators - Expo Documentation
This provides a standalone (independent of Expo Go) version of the app running without needing to deploy to TestFlight or even having an Apple Developer account. To install a build of your app on an iOS Simulator, modify the build profile in eas.json and set the ios.simulator value to true: ... Remember that a profile can be named whatever you like. In the above example, it is called preview. However, you can call it local...
🌐
Applaunchk
docs.applaunchk.it › build-and-deploy › expo
Build your Expo app |
Learn how to create development builds for your expo project. If you are looking to create a development build locally, rather than remotely on EAS, you can create local builds with npm run ios or npm run android.
🌐
GitHub
github.com › expo › eas-cli › issues › 2307
I am trying to build the iOS version of an application locally whose Expo. I have no issues building the Android version but run into issues when building the iOS. I can build the iOS version when I generate the Xcode project myself but cannot via eas. · Issue #2307 · expo/eas-cli
January 7, 2024 - Build/Submit details page URL https://expo.dev/accounts/leonardostan/projects/TotalJobs/builds/16ef6b61-260e-4496-b1e0-913660b94938 Summary I am trying to build the iOS version of an application locally whose Expo. I have no issues build...
Published   Mar 30, 2024
🌐
AppLaunchKit
v1-docs.applaunchk.it › guides › build-your-expo-app
Build your Expo app | AppLaunchKit - docs - v1
Learn how to create development builds for your expo project. If you are looking to create a development build locally, rather than remotely on EAS, you can create local builds with npm run ios or npm run android.
🌐
GitHub
gist.github.com › VehpuS › 1eb5143cdb6013fbc0d2b8ec52f5059b
A Summary of Documents on How to Build Expo Locally · GitHub
expo-local-build-nodes.md · I made this because each doc on it's own discusses localizing one part of the pipeline - and I couldn't find a single place to see the whole process. From Building Standalone Apps · Do steps 1, 2 · From Hosting Your App · Make sure to use localhost public url method, as otherwise anyone can build (and see dist files) for project. From this documentation · Get certificates required for android / IOS ·
🌐
Today I Learned
til.hashrocket.com › posts › irzuebjkuk-run-expo-build-locally
Run Expo Build Locally - Today I Learned
June 25, 2024 - Just use the --local flag. It's important to note, you will need Ruby installed locally, as well as the fastlane and cocoapods gems · gem install fastlane cocoapods # only if you haven't already eas build --platform ios --profile dev --local
🌐
DevGenius
blog.devgenius.io › how-to-build-an-ios-expo-app-without-using-eas-build-78bfc4002a0f
How to build an iOS Expo App without using EAS Build | by Michael Essiet | Dev Genius
August 8, 2023 - Now let’s get started on how we can go about archiving our app. Firstly you’ll need to run npx expo prebuild if you have an Expo managed project. After running the prebuild command you’ll need to run npx pod-install or cd into the ios ...
🌐
egghead.io
egghead.io › lessons › react-native-create-a-development-build-for-iphone-with-eas
Create a Development Build for iPhone With EAS | egghead.io
Create a build to run on your physical iPhone device that can also be used for local development. 📝 Enabling Developer Mode 📖 Further reading: Push No...
🌐
Expo Documentation
docs.expo.dev › build › setup
Create your first build - Expo Documentation
The easiest way to try out EAS Build is to create a build that you can run on your Android device/emulator or iOS Simulator. It's quicker than uploading it to a store, and you don't need store developer membership accounts.