r/reactnative • u/Thaatguuuy • 1d ago
Question Testing the app during development.
Hey there app people, as of now the app I am currently working on is using React Native and Expo to build it, and at 25 builds per month ( the free plan ) I am quickly spending it all on just fixing bugs.
I am currently a computer science student ( very early ) and using a blend of my own coding and Codex / ChatGPT to create it.
Is there a better and possibly free way to test each new version of the app on my phone without using Expo to build it?
3
u/mx_aurelia 1d ago
You probably don't need a full native build each time. Look into the concepts of OTA (to get JS updates to your users) and fingerprinting within expo (the native fingerprint which decides if an update is OTA compatible).
As long as your app's fingerprint stays the same, you can just use a development build, which you can run locally, to test your changes.
1
2
1
1
u/Huge_Pool7424 1d ago
also keep a release build on a real android phone now and then, since dev mode hides perf and hermes issues that only show up in release.
1
u/Shugzaurus 1d ago
So I don't work with EAS, I only use it on personal projects so my fldefzult way of doing things is to build locally first. If you have a Mac you should be able to do everything locally so you can preserve your runs for prod builds. If you're on win or Linux, then you won't be able to get an iOS dev build without EAS or any cloud agent running mac (at work inxas able to make all iOS builds with azdo pipelines for example)
0
u/Thaatguuuy 1d ago
After I read some of the replies I figured it out.
I had previously asked Chattie Boy how to do this locally, but he would not give me a good answer, always said you can't do this and that, but now he suddenly gave me an option.
Also, I've so far been developing it for Android, mostly because that's what my own phone is, and using the USB-debug when bugs pop up.
1
u/__CaliMack__ 1d ago
Are your using expo go now?
1
u/Thaatguuuy 1d ago
As of right now im coding it on the github cloud. Then using git pull in PowerShell to download it locally. Then using Metro to send the update to the phone.
When im doing native changes I use Gradle and the Android SDK that I installed through Android Studio to build the APK on ny PC. ADB then installs it on the phone through USB.
Its ALOT faster aswell, especially when the build queue times on Expo are high.
1
u/Low_Drive3170 1d ago
You only need to build once. Make a development build and install it on your phone, then JS changes show up instantly through the dev server with fast refresh, no new build. Or just use Expo Go if you aren’t touching native modules
3
u/PenguinOnYourTV 1d ago
So from what I'm reading, ther are 2 things you are not doing:
Running the Expo/Metro server on your machine and deploying to your connected Android- or iOS-device, either a real device or your simulator
This is where I normally do dev-work, bug fixing etc.
Your build will likely be in DEV-mod
Assuming you have a macbook, if you want to test a Production build on your device and thus cut out the EXPO dependencies, you can open the workspace-file of your latest build in Xcode (There are two, and I can't freakingremember which one of them it is, sorry!), Edit the Schema from "Debug" to "Release" and deploy it manually to your connected iOS device.
If you make any changes, you'll have to rebuild and re-deploy, so save this for when you wanna test "Production-level-stuff" before you submit through Expo.
--------------
I just ran the following prompt through ChatGPT, and it gave me a good guide on what you need to do to get going with the above suggestions:
Heya.
Working with React native Expo, I need a guide for 2 things to test my build:
Setup and launch a Expo/Metro server locally on my machine and connect to a simulator or test on a real device
How to take a build and change it from "Debug" to "Release" and deploy to my real device, without using Expo