Skip to content

Rename & rebrand

Do this for each app before connecting Firebase. Examples use the customer app; the seller app is in apps/seller and the rider app in apps/delivery.

Every app needs a unique ID in reverse-domain style, used by Google Play, the App Store and Firebase. Pick them once — they can’t change after you publish.

AppExample Android IDExample iOS bundle ID
Customercom.yourbrand.customercom.yourbrand.customer
Sellercom.yourbrand.sellercom.yourbrand.seller
Ridercom.yourbrand.ridercom.yourbrand.rider

In android/app/build.gradle.kts, change applicationId:

apps/customer/android/app/build.gradle.kts
defaultConfig {
applicationId = "com.yourbrand.customer"

Leave namespace as it is — it’s the code’s internal package and doesn’t show anywhere.

  1. Open ios/Runner.xcworkspace in Xcode (the .xcworkspace, not the .xcodeproj).
  2. Select Runner in the left panel → the Runner target → Signing & Capabilities.
  3. Set Bundle Identifier to your iOS ID, for example com.yourbrand.customer.
  4. Customer app only: it has two extra targets that must start with the same ID:
    • ImageNotification (pictures in push notifications) → com.yourbrand.customer.ImageNotification
    • RapidOrderLiveActivity (order progress on the lock screen) → com.yourbrand.customer.RapidOrderLiveActivity

Android — each app keeps it in a different place:

AppFileChange
Customerandroid/local.properties (create it if needed)add APP_NAME=QuickMart
Sellerandroid/app/src/main/AndroidManifest.xmlandroid:label="QuickMart Seller"
Riderandroid/app/src/main/res/values/strings.xml (and values-ar/strings.xml for Arabic)<string name="app_name">QuickMart Rider</string>

iOS: in ios/Runner/Info.plist, change CFBundleDisplayName:

<key>CFBundleDisplayName</key>
<string>QuickMart</string>

Inside the app, titles and colours come from your server (Settings → Brand & business), so you don’t need to change them in code.

The easiest way is flutter_launcher_icons:

  1. Make a square 1024×1024 PNG of your icon (no transparency for iOS).
  2. Save it as assets/icon/app_icon.png in the app’s folder.
  3. Add to the end of the app’s pubspec.yaml:
    dev_dependencies:
    flutter_launcher_icons: ^0.14.0
    flutter_launcher_icons:
    android: true
    ios: true
    image_path: assets/icon/app_icon.png
    remove_alpha_ios: true
    (If dev_dependencies: already exists, add the flutter_launcher_icons line under it.)
  4. Run:
    Terminal window
    flutter pub get
    dart run flutter_launcher_icons

Notification icon (customer app, Android): the small icon in the status bar is android/app/src/main/res/drawable/ic_notification.xml. Replace it with a white-on-transparent version of your mark (Android Studio → right-click res → New → Vector Asset or Image Asset → Notification icons).

Product, store and promo links like https://yourdomain.com/p/12 open in the app when your domain is verified for it.

  1. The app: set your domain — APP_LINKS_HOST=yourdomain.com in android/local.properties, and APP_LINKS_DOMAIN = yourdomain.com in ios/Flutter/AppLinks.xcconfig.
  2. The server: add to your server’s .env:
    Terminal window
    APP_LINKS_BASE_URL=https://yourdomain.com
    APP_LINKS_ANDROID_PACKAGES=com.yourbrand.customer
    APP_LINKS_ANDROID_SHA256=AA:BB:… # your release key's SHA-256 (see Build for Android)
    APP_LINKS_IOS_TEAM_ID=ABCDE12345 # Apple Developer → Membership
    APP_LINKS_IOS_BUNDLE_IDS=com.yourbrand.customer
    Then php artisan config:clear. RapidMart serves the verification files (/.well-known/assetlinks.json and /.well-known/apple-app-site-association) from these.