yarn install, you’re ready to launch! This guide covers iOS, Android, and Web.
Quick Commands
From theapps/app directory:
.env is configured; otherwise it falls back to mock mode. Add real API keys early for more accurate behavior.
Platform Details
iOS
iOS
Requirements:First run takes longer - Expo needs to build the native iOS project. Subsequent runs are much faster.Using a specific simulator:
- Xcode installed (latest version recommended)
- iOS Simulator available
Android
Android
Requirements:First run takes longer - Expo needs to build the native Android project.Troubleshooting:
- Android Studio installed
- Android Emulator configured (or physical device)
ANDROID_HOMEenvironment variable set
- Make sure an emulator is running or a device is connected
- Run
adb devicesto verify your device is recognized
Web
Web
Fully supported! Shipnative runs on web via Expo Web and react-native-web.Opens at
http://localhost:19006What works on web:- All UI components (Unistyles 3.0 supports web)
- Authentication (Supabase works everywhere)
- Payments (RevenueCat Web Billing)
- Analytics (PostHog)
- Dark mode
- Responsive design
Mock Mode vs Real Services
When you run the app without API keys configured, mock mode activates automatically:| Service | Mock Behavior |
|---|---|
| Auth | Login/signup works with fake accounts |
| Payments | Purchases succeed instantly, toggle Pro status in dev menu |
| Analytics | Events logged to console |
| Errors | Captured locally, not sent to Sentry |
How to check service status: Open the Developer Menu (
Cmd+D on iOS, Cmd+M on Android) and check “Service Status”.Developer Menu
Access the dev menu to debug and test:| Platform | How to Open |
|---|---|
| iOS Simulator | Cmd + D |
| Android Emulator | Cmd + M (Mac) or Ctrl + M |
| Physical Device | Shake the device |
| Web | Browser DevTools |
- Component Showcase - see all UI components
- Toggle dark/light mode
- Switch between Free/Pro user
- View service status (mock vs real)
- Reload the app
Troubleshooting
Metro bundler won't start
Metro bundler won't start
Clear the cache and restart:Or kill the process on port 8081:
iOS build fails
iOS build fails
Clean and reinstall CocoaPods:
Android SDK not found
Android SDK not found
Set your Add this to your
ANDROID_HOME environment variable:~/.zshrc or ~/.bashrc.Hot reload not working
Hot reload not working
- Open the dev menu
- Ensure “Fast Refresh” is enabled
- If still not working, restart Metro:
yarn app:start --clear

