Rebranding
name, ids, icon, colour.
Some branding lives in the console and changes without a build. The application id, the store name and the icon live in the project files and need a new build.
Customization walkthrough takes you through the name, accent colour, logo and support e-mail step by step, with before and after pictures.
01In the console (no new build)
| Console → Brand | Default | Where it shows |
|---|---|---|
| Product name | Watch And Earn | The name inside the app (sign-in screen, titles). |
| Accent colour | #EC4899, shown by the 4.0 app as its magenta #FF3DA5 | The first stop of the brand gradient and the primary colour in light and dark mode (Design and theming). |
| Support email | empty | The contact shown in the app. |
| Name of the points | points | Shown next to the balance on Home and read out by screen readers with every points badge, e.g. coins or stars (lower case, plural). While it stays points, the app shows the translated word in the user's language. The app's other texts keep saying "points" in all 9 languages; to rename it there too, edit the ARB files (Change a text). |
Legal page URLs and the points notice are under Legal. The app listens to config/public live, so changes appear within seconds.
02Rename the app before the cash wallet goes on
The package ships with the name "Watch And Earn" in console → Brand (Product name), android:label in app/android/app/src/main/AndroidManifest.xml, CFBundleDisplayName and CFBundleName in app/ios/Runner/Info.plist, and the web <title> and manifest.json. Next to a cash wallet, that name reads like "watch ads, earn money", which is exactly what AdMob's rewards policy and the stores' deceptive-behaviour rules forbid. Before you switch the cash wallet on, give the app your own name, icon and store listing (Rebranding).
- Never market the app, in its name, icon, screenshots, store text or ads, as a way to earn money by watching ads, playing games or collecting points.
- Describe cash truthfully: rewards from completed partner offers and surveys, with a minimum, a hold and an approval step.
- Keep the in-app wallet notice and "How cash works" consistent with that (Platform rules).
03Application id and bundle id
Required before releaseThe package uses the placeholder com.yourcompany.watchandearn. Pick your own reverse-domain id once; the stores never let you change it after the first upload.
- AndroidIn
app/android/app/build.gradle.ktschange bothnamespaceandapplicationId. Moveapp/android/app/src/main/kotlin/com/yourcompany/watchandearn/MainActivity.ktto the matching folder and change itspackageline. - iOSOpen
app/ios/Runner.xcworkspacein Xcode → Runner target → General → Bundle Identifier. This updatesPRODUCT_BUNDLE_IDENTIFIERinproject.pbxproj(also change the RunnerTests target). - FirebaseRun
flutterfire configureagain inapp/so Firebase knows the new ids. - ConsoleSubscriptions and purchases → Android package name and iOS bundle id, if you sell VIP or remove-ads.
Find every remaining occurrence:
grep -rn "com.yourcompany.watchandearn" app/android app/ios
04App name on the home screen
| Platform | File | Key |
|---|---|---|
| Android | app/android/app/src/main/AndroidManifest.xml | android:label |
| iOS | app/ios/Runner/Info.plist | CFBundleDisplayName and CFBundleName |
| Web demo | app/web/index.html, app/web/manifest.json | <title>, meta tags, name, short_name |
05App icon and splash
The icons are plain image files; no icon generator is included.
| Platform | Where |
|---|---|
| Source image | app/assets/brand/logo-1024.png (1024×1024) |
| Android | app/android/app/src/main/res/mipmap-*/ic_launcher.png |
| iOS | app/ios/Runner/Assets.xcassets/AppIcon.appiconset/ |
| Web | app/web/icons/ and app/web/favicon.png |
| Splash | Android res/drawable*/launch_background.xml, iOS Runner/Base.lproj/LaunchScreen.storyboard |
The quickest way is the flutter_launcher_icons package from pub.dev: add it as a dev dependency, point it at your 1024×1024 image and run dart run flutter_launcher_icons. Follow that package's own instructions.
06Texts and translations
Every text the user sees is in app/lib/l10n/app_<language>.arb. There are nine languages. Edit the values and keep the keys. How to change a text, add a language and declare languages on iOS: Languages. Keep the points notice's meaning in every language: points have no cash value.
07Colours beyond the accent
Since 4.0 the design tokens (gradient, surfaces, points and cash colours, radii, fonts) are in app/lib/core/design.dart; app/lib/core/theme.dart builds the themes from them. Full guide: Design and theming. Users can choose light, dark or system theme in the app's settings. A theme bought in the rewards store and equipped by the user recolours the app instead of your accent colour (themeAccent in app/lib/ui/widgets/cosmetics.dart). The theme colours are fixed in that file.