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>
This commit is contained in:
2026-06-04 22:21:50 +08:00
parent 76d74aa7b5
commit 22743c81e1
53 changed files with 1891 additions and 178 deletions

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>API_KEY</key>
<string>AIzaSyAQnB5hbj0T5tE4JQZQ9Tx6Whp_u15obMI</string>
<key>GCM_SENDER_ID</key>
<string>1068156046511</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.asc.hallobestie.dev</string>
<key>PROJECT_ID</key>
<string>halobestie-clone-dev</string>
<key>STORAGE_BUCKET</key>
<string>halobestie-clone-dev.firebasestorage.app</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:1068156046511:ios:bc9098ffc2c2913ab8185a</string>
</dict>
</plist>

View File

@@ -0,0 +1,15 @@
Place the DEV GoogleService-Info.plist here, named exactly:
GoogleService-Info.plist
Register this iOS app first:
• Firebase project: halobestie-clone-dev (the DEV project)
• iOS bundle ID: com.asc.hallobestie.dev
Then download its GoogleService-Info.plist into this folder (delete this .README).
Also paste its appId/apiKey into lib/firebase/firebase_options_dev.dart
(the iOS section currently holds PLACEHOLDER values).
How it gets used: a build-phase "Run Script" (added in Xcode — Mac follow-up)
copies the per-flavor file into ios/Runner/GoogleService-Info.plist at build
time. See ../README.md and BUILD_FLAVORS.md.