How can I change the app display name build with Flutter?
Master System Design with Codemia
Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.
Introduction
Changing a Flutter app's display name means updating the native platform metadata, not just changing Dart code. Flutter builds Android and iOS apps from platform-specific project files, so the launcher name must be updated in the Android manifest or string resources and in the iOS bundle display settings.
Android: Change the Launcher Label
On Android, the visible app name comes from the android:label value on the application entry. In most Flutter projects, that label points to a string resource rather than a hardcoded value.
Check android/app/src/main/AndroidManifest.xml:
Then update android/app/src/main/res/values/strings.xml:
Using a string resource is better than hardcoding the label directly in the manifest because it supports localization and keeps the manifest cleaner.
iOS: Change the Bundle Display Name
On iOS, the home-screen name is usually controlled by CFBundleDisplayName in ios/Runner/Info.plist.
If CFBundleDisplayName is not present, some projects fall back to CFBundleName, but CFBundleDisplayName is the value you typically want for the launcher label.
Rebuild After Changing Native Metadata
After editing the platform files, rebuild the app so the native bundle metadata is refreshed.
For release builds:
If the old name still appears on a simulator or device, uninstalling the existing app and reinstalling it can help when cached metadata sticks around.
Keep Android and iOS Names Consistent
It is easy to update only one platform and forget the other. If your app ships to both Android and iOS, make sure:
- Android
app_namematches the intended label - iOS
CFBundleDisplayNamematches the same branding - localized resources are updated if you support multiple languages
Otherwise the same Flutter app can show different names on different devices.
Localizing the Display Name
If your app is localized, you may want different launcher labels per language. On Android, that means adding translated app_name strings in language-specific values folders. On iOS, it usually means localized string resources for bundle display values.
This is separate from Flutter's Dart-side localization. The launcher name is still a native-platform concern.
Avoid Confusing App Name With Package Identifier
Changing the display name does not change:
- Android application ID
- iOS bundle identifier
- package names used for installs or store submission
That is an important distinction. The launcher name is just the user-facing label under the app icon.
Common Pitfalls
The biggest mistake is changing only a Dart constant and expecting the icon label to update. The launcher name lives in the native platform files.
Another issue is hardcoding the Android name in the manifest when the rest of the app already uses string resources. That makes localization and later maintenance harder.
Developers also forget that iOS and Android use different files for the display name, so one platform gets updated while the other keeps the old label.
Finally, if the new name does not appear immediately, rebuild the app and, if necessary, remove the old installed build before retesting.
Summary
- Change the Flutter app display name in native platform files, not in Dart code.
- On Android, update
android:labeland usually the@string/app_nameresource. - On iOS, update
CFBundleDisplayNameinInfo.plist. - Rebuild the app after making native metadata changes.
- Do not confuse the visible app name with the package or bundle identifier.

