If you are looking to run a native build without using Expo Go on a physical iOS device (not a simulator), you can plug in your device to your computer by cable and use the following code:
npx expo run:ios --device
This is useful in cases when you need to test notifications, native code, etc.
Alternatively, if you're using yarn, try:
yarn expo run:ios --device
Answer from Brian Li on Stack OverflowIs there really no simple way to build and run an Expo app locally via Xcode?
No way to build ios preview without paid account?
npx expo run:ios --device doesn't take app.config.js changes into account, deeplinks do not work
expo run:ios cannot install on physical device
Videos
If you are looking to run a native build without using Expo Go on a physical iOS device (not a simulator), you can plug in your device to your computer by cable and use the following code:
npx expo run:ios --device
This is useful in cases when you need to test notifications, native code, etc.
Alternatively, if you're using yarn, try:
yarn expo run:ios --device
Yes, it is possible, and quite easy to get it running.
Step 1: Open Expo XDE, and click on the gray cog to change host mode to LAN. Make sure you enabled Development Mode. You'll see an URL right in front of you. Wait until packager to start running.
Step 2: Open Expo App in your mobile device, and click on the second tab 'Explore' and enter the URL that starts with exp://192.168... This is a local connection to your computer. You will see your app running in a minute.
Make sure your phone and computer are on the same WiFi!
For further information, you may refer to official documents here.
I'm trying to follow what I thought would be a straightforward local workflow:
Start the Expo dev server with
expo startDevelop the app on the iOS simulator
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.
I've been trying to make deeplinks work in my Expo (+ Expo Router) app.
I followed the docs here:
https://docs.expo.dev/linking/into-your-app/
And I added the "scheme" key.
But unfortunately that doesn't work. Opening myapp:// in Safari or Chrome on mobile doesn't work.
I build my app locally with this command: npx expo run:ios --device (or the android equivalent).
My app uses Google Sign In on iOS, so I tried to empty the array in CFBundleURLSchemes to see if it would break my app, and... it doesn't. I then checked in the Info of the app of the /ios folder, and I can see that the first entry of the CFBundleURLSchemes is still set even after running "npx expo run:ios --device".
I tried to run:
expo prebuild --clean
and I also tried to run "expo start --clear".
None of that works, it seems that the config changes are just ignored. I could simply delete the /ios folder and rebuild, but I would expect the build command not to ignore changes in my app.config.js.
What is going on here? What is the correct way to do this?
Hi, is there a way to deploy an app on a physical device without the need for a paid developer account or a mac? I do have an iPhone. Any help would be great. I just need to run my app on my apple device. Thank you.
I've been working with Expo React Native for Android for quite a while but I'm very new to Expo React Native iOS. Like in Android when we generate .apk file it can be directly run on a physical device without submitting to Playstore. Can the same be done for iPhone?
In short: Can I install iOS app directly into iPhone without submitting to AppStore?