Daily Meet Wiki / Build & release

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.

i

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)

ScriptFlavorBackend
./scripts/run_user_local.shstaginglocal (10.0.2.2:8000 emulator / 127.0.0.1:8000 other)
./scripts/run_host_local.shstaginglocal
./scripts/run_user_staging.shstagingapi-staging.dailymeet.in
./scripts/run_host_staging.shstagingapi-staging.dailymeet.in
./scripts/run_user_release.shproductionapi.dailymeet.in
./scripts/run_host_release.shproductionapi.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

CommandOutput
./scripts/build_user_android_debug.shdist/android/user/daily-meet-user-debug.apk
./scripts/build_host_android_debug.shdist/android/host/daily-meet-host-debug.apk
./scripts/build_user_android_staging.shdist/android/user/daily-meet-user-staging.apk
./scripts/build_host_android_staging.shdist/android/host/daily-meet-host-staging.apk
./scripts/build_user_android_production.shdist/android/user/daily-meet-user-production.apk
./scripts/build_host_android_production.shdist/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).