Configuration
FoxTalk gathers all runtime config in two places: backend URLs live in AppConfig (Dart side), and branding lives in branding/app_brand.json (generates native project config).
lib/src/config/app_config.dart is the client-side runtime config entry, holding three URLs:
Switch backend with --dart-define
The default https://your-server.example is production — so a TF / App Store Archive without --dart-define still hits prod. To target a local backend, override with --dart-define:
flutter run --dart-define=CHATIM_SERVER_BASE_URL=http://<LAN_IP>:8090Branding & display name
branding/app_brand.json is the single source of truth for branding. The tool regenerates ios/Flutter/AppBrand.xcconfig and Android string resources from this file, keeping display name and bundle name in sync.
{
"displayName": "FoxTalk",
"bundleName": "foxtalk",
"idLabel": "FoxTalk ID"
}The directory name repo/TangSengDaoDaoFlutter/ is kept for easier upstream sync; user-visible branding goes through this file.
iOS aps-environment
Runner.entitlements declares aps-environment for APNs — development for dev, production for prod. With Xcode automatic signing, Archive uploads to App Store / TF pick up production automatically, while debug runs on a real device pick up development.