What’s the Difference?
- Preview Build: A standalone build with your app code bundled in. Installed via TestFlight/Google Play or direct download. Cannot reload code without rebuilding.
- Development Build: Includes the Expo development client. Can connect to
expo startand reload code instantly without rebuilding.
Key Differences on Your Device
The development build uses a different bundle identifier/package name (com.meridian.mobile.dev) so it will:
- Appear as a separate app on your home screen
- Coexist with your preview build
- Allow you to connect to
expo startfor hot reloading
iOS Development Build
Step 1: Build the Development Build
From theMeridian-Mobile directory, run:
- Build a development client with your app
- Take ~15-30 minutes
- Generate a QR code and download link when complete
Step 2: Install on Your iPhone
Option A: Via QR Code (Easiest)
- When the build completes, EAS will show you a QR code
- Open your iPhone camera
- Scan the QR code
- Tap the notification to download
- Go to Settings → General → VPN & Device Management
- Trust the developer certificate
- Open the app
Option B: Via Download Link
- When the build completes, EAS will provide a download link
- Open the link on your iPhone (Safari)
- Tap “Install”
- Go to Settings → General → VPN & Device Management
- Trust the developer certificate
- Open the app
Step 3: Connect to Development Server
Once the development build is installed:-
Start the development server on your computer:
-
Connect your iPhone:
- Make sure your iPhone and computer are on the same Wi-Fi network
- Open the development build app on your iPhone
- Shake your device (or press
Cmd+Dif using simulator) to open the developer menu - Tap “Enter URL manually” or scan the QR code from the terminal
- Enter your computer’s IP address (shown in the terminal), e.g.,
exp://192.168.1.XXX:8081
-
Load your app:
- The app will connect and load your JavaScript bundle
- You can now make changes and see them instantly with hot reload!
iOS Troubleshooting
”Untrusted Developer” Error
- Go to Settings → General → VPN & Device Management
- Find the developer certificate
- Tap “Trust [Developer Name]”
- Confirm trust
Build Fails
- Make sure you’re logged into EAS:
eas login - Check your Apple Developer account is linked:
eas credentials - Ensure the bundle identifier
com.meridian.mobile.devis registered in your Apple Developer account
Android Development Build
Step 1: Build the Development Build
From theMeridian-Mobile directory, run:
- Build a development client with your app as an APK
- Take ~15-30 minutes
- Generate a QR code and download link when complete
Step 2: Install on Your Android Device
Option A: Via QR Code (Easiest)
- When the build completes, EAS will show you a QR code
- Open your Android device camera or a QR code scanner app
- Scan the QR code
- Tap the notification to download the APK
- If prompted, allow installation from unknown sources:
- Go to Settings → Security → Enable “Install unknown apps” for your browser
- Tap “Install” when the download completes
- Open the app
Option B: Via Download Link
- When the build completes, EAS will provide a download link
- Open the link on your Android device (Chrome or any browser)
- Download the APK file
- If prompted, allow installation from unknown sources
- Tap the downloaded APK file to install
- Tap “Install” when prompted
- Open the app
Option C: Via ADB (For Developers)
If you have ADB installed:Step 3: Connect to Development Server
Once the development build is installed:-
Start the development server on your computer:
-
Connect your Android device:
- Make sure your Android device and computer are on the same Wi-Fi network
- Open the development build app on your Android device
- Shake your device (or press
Cmd+M/Ctrl+Mif using emulator) to open the developer menu - Tap “Enter URL manually” or scan the QR code from the terminal
- Enter your computer’s IP address (shown in the terminal), e.g.,
exp://192.168.1.XXX:8081
-
Load your app:
- The app will connect and load your JavaScript bundle
- You can now make changes and see them instantly with hot reload!
Android Troubleshooting
”Install blocked” or “Unknown sources” Error
- Go to Settings → Security (or Apps & notifications → Special app access)
- Enable “Install unknown apps” for your browser (Chrome, Firefox, etc.)
- Try downloading and installing again
Can’t Connect to Development Server
- Ensure both devices are on the same Wi-Fi network
- Check your firewall isn’t blocking port 8081
- Try entering the URL manually:
exp://YOUR_IP:8081 - Verify your computer’s IP address hasn’t changed
- On Android, you may need to use
exp://instead ofhttp://
Build Fails
- Make sure you’re logged into EAS:
eas login - Check your Android credentials:
eas credentials - Ensure the package name
com.meridian.mobile.devis available (EAS will handle this automatically)
Developer Menu Not Appearing
- Shake your device physically
- Or press
Cmd+M(Mac) /Ctrl+M(Windows/Linux) if using an emulator - Or run:
adb shell input keyevent 82(if ADB is installed)
Differentiating the Apps
The development build will appear as a separate app because:- iOS Bundle ID:
com.meridian.mobile.dev(vscom.meridian.mobilefor preview) - Android Package:
com.meridian.mobile.dev(vscom.meridian.mobilefor preview) - App Name: “Meridian Dev” (vs “Meridian” for preview)
Quick Reference
Related pages
Once a dev client is installed, you can iterate with fast refresh, React Native Debugger, native modules, and on-device testing without rebuilding from scratch for every JS change.OTA updates
EAS Update channels, publishing JS-only updates, and Expo references.
Mobile analytics
Event tracking and batching from the Meridian mobile app.
Authentication overview
Google, Apple, and token flows the mobile client uses with the backend.
Getting started
Meridian clone setup and env vars aligned with Meridian-Mobile (separate repo; often a sibling folder).
Shuttle tracker
Campus shuttle integration consumed from the mobile app.
Testing
CI and conventions when mobile features touch the Meridian backend.