Build & release
Every script that runs or builds the User App / Host App, and which flavor + backend it points at. All from daily-meet-app.
Since build flavors were added, every flutter run/flutter build needs --flavor staging|production plus a matching --dart-define=APP_FLAVOR=staging|production. All scripts below already pass both — only a bare manual flutter run needs them added by hand.
Run scripts (device/simulator)
| Script | Flavor | Backend |
|---|---|---|
./scripts/run_user_local.sh | staging | local (10.0.2.2:8000 emulator / 127.0.0.1:8000 other) |
./scripts/run_host_local.sh | staging | local |
./scripts/run_user_staging.sh | staging | api-staging.dailymeet.in |
./scripts/run_host_staging.sh | staging | api-staging.dailymeet.in |
./scripts/run_user_release.sh | production | api.dailymeet.in |
./scripts/run_host_release.sh | production | api.dailymeet.in |
Physical device on local backend needs an explicit LAN URL, since the phone can't reach your Mac via 10.0.2.2/127.0.0.1:
flutter run --flavor staging --dart-define=APP_FLAVOR=staging \
--dart-define=DAILY_MEET_API_BASE_URL=http://YOUR_LAN_HOST:8000
Android APK builds
| Command | Output |
|---|---|
./scripts/build_user_android_debug.sh | dist/android/user/daily-meet-user-debug.apk |
./scripts/build_host_android_debug.sh | dist/android/host/daily-meet-host-debug.apk |
./scripts/build_user_android_staging.sh | dist/android/user/daily-meet-user-staging.apk |
./scripts/build_host_android_staging.sh | dist/android/host/daily-meet-host-staging.apk |
./scripts/build_user_android_production.sh | dist/android/user/daily-meet-user-production.apk |
./scripts/build_host_android_production.sh | dist/android/host/daily-meet-host-production.apk |
Add --clean for a clean build. All of these wrap scripts/_build_android_apk.sh <user|host> <debug|staging|production>, which also accepts --api-base-url URL — only for debug builds, e.g. to point a debug build at your Mac's LAN IP for a physical device.
These APKs — production included — use debug signing. They're fine for internal testing/QA on a device you install manually, but are not store-upload-ready. Release-signing (keystore, Play Store/App Store credentials) isn't configured in either repo yet.
VS Code launch configs
.vscode/launch.json has a Staging and Production entry for both apps, each already wired with the right flavor + dart-defines:
- Daily Meet User – Local / Staging / Production
- Daily Meet Celeb – Local / Staging / Production
Tests & analysis
flutter analyze
flutter test
(cd apps/host_app && flutter analyze && flutter test)
Backend/Admin Panel release
Different process entirely — see Backend deployment for the Railway promotion workflow (main → merge into production branch, no manual build step).