Prerequisites
- IDE: Android Studio (recommended) or VS Code
- JDK: JDK 17 (ensure PATH configured)
- Flutter SDK: version
3.35.6(stable) - Xcode: Xcode 26.0 required for iOS IPA creation (macOS only)
- Supported platforms: Android, iOS, Web
3.35.6 (stable)Notes: Android Studio Koala (2024.1.2) ships with JDK 17. Verify java -version and flutter doctor after installation.
C:\flutter and add C:\flutter\bin to PATH.flutter doctor and resolve issues.tar -xvzf android-studio-ide-...-linux.tar.gz./studio.sh from android-studio/bin.flutter/bin to PATH.flutter doctor, install plugins in Android Studio./Applications, run setup wizard.flutter/bin to PATH.flutter doctor and install Xcode (for iOS builds) & command line tools.flutter doctor — fix any issues reported.flutter pub get to fetch dependencies.flutter run.To replace app branding:
assets/images/logo.png with your white/brand logo (use exact filename).android/app/src/main/res/mipmap-* and iOS asset catalogs at ios/Runner/Assets.xcassets.Set app name in three places:
lib/util/app_constrants.dart — set static const String appName = 'YOUR_APP_NAME'android/app/src/main/AndroidManifest.xml — update android:label="YOUR_APP_NAME"ios/Runner/info.plist — update CFBundleDisplayName and CFBundleNameSet API base URL after backend is deployed:
Do not add a trailing slash (/).
To change package name:
android/app/src/main/AndroidManifest.xml to find current packageCreate one Firebase project and add multiple apps (User app, Provider app, Serviceman app) to it. Avoid creating duplicate projects.
google-services.json and place it in android/app/ (replace existing file).android/app/src/main/res/drawable/notification_icon.png (must be named notification_icon.png).lib/main.dart — set apiKey, appId, messagingSenderId, projectId.GoogleService-Info.plist, then place it under the ios/ folder.If you want the app to auto-set the country code at login/register/OTP, configure the country setting in the Admin Panel → Business Settings and update the code picker widget:
To disable the country chooser dialog, remove showDropDownButton: true and use a fixed country filter param.
Update colors in:
lib/theme/light_theme.dart — set primaryColor, foregroundColor, secondarylib/theme/dark_theme.dart — update dark variants#735E3B — Secondary: #B9A787Basic build command for APK:
To produce split ABIs (smaller apks):
For Play Store, prefer AAB:
android/app/build.gradle.See Flutter docs: https://docs.flutter.dev/deployment/android
Apple does not allow side-loading. To test on devices and publish, use TestFlight or App Store.
Follow Apple's & Flutter's docs for archiving & uploading: