Files
halobestie-clone/client_app/ios/config/README.md
Ramadhan Sjamsani 22743c81e1 feat(build): add dev/staging/prod flavors for client_app + mitra_app
Android product flavors (.dev/.staging suffixes, prod clean) + per-flavor
Dart entrypoints, dart-define env files, and per-flavor Firebase config for
both platforms across 3 projects (halobestie-clone-dev / my-bestie-876ec /
my-bestie-production).

- Android: flavorDimensions("env") + productFlavors; @string/app_name label;
  per-flavor src/<flavor>/google-services.json (clients verified to match each
  applicationId).
- iOS: customer app re-based to the EXISTING App Store identity
  com.asc.hallobestie (dev/staging suffix it; ships as an update to the live
  app). mitra is a new app (com.mybestie.mitra). Per-flavor plists staged in
  ios/config/<flavor>/; Xcode scheme wiring deferred (Mac follow-up).
- firebase_options_{dev,staging,prod}.dart filled with real android + iOS
  values (regenerated from the native config files).
- BUILD_FLAVORS.md per app documents flavor table, build commands, iOS
  identity decision, and the remaining iOS Xcode steps.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 22:21:50 +08:00

35 lines
1.4 KiB
Markdown

# iOS per-flavor Firebase config — client_app
iOS has **no** automatic per-flavor resolution (unlike Android's
`android/app/src/<flavor>/google-services.json`). Stage the three
`GoogleService-Info.plist` files here, one per flavor:
```
ios/config/
dev/GoogleService-Info.plist → bundle com.asc.hallobestie.dev (dev project)
staging/GoogleService-Info.plist → bundle com.asc.hallobestie.staging (staging/nonprod)
prod/GoogleService-Info.plist → bundle com.asc.hallobestie (prod project, live App Store app)
```
> The customer iOS bundle base is **`com.asc.hallobestie`** (the existing App
> Store app), NOT the Android `com.mybestie`. See `../../BUILD_FLAVORS.md`.
## Wiring (Xcode — Mac follow-up, not done yet)
The active plist Xcode bundles is `ios/Runner/GoogleService-Info.plist`. To make
it per-flavor, add a **Run Script** build phase to the Runner target, placed
**before** "Compile Sources":
```bash
cp "${PROJECT_DIR}/config/${FLAVOR}/GoogleService-Info.plist" \
"${PROJECT_DIR}/Runner/GoogleService-Info.plist"
```
`${FLAVOR}` is a per-scheme/configuration build setting you define when creating
the dev/staging/prod schemes (e.g. `FLAVOR = dev` in the dev configuration).
### Single-env shortcut
If you only need one env working (e.g. dev) before the full scheme setup, just
drop that env's plist directly at `ios/Runner/GoogleService-Info.plist` — no
script needed for a single environment.