Create Flutter icons for all target types with single png and flutter_launcher_icons

Creating a cross-platform app icon for Flutter can be easy. This is especially true if you avoid implementing many platform-specific customizations. You can convert a single PNG image into all the formats needed for Flutter Android, iOS, MacOS, Windows, and Web launcher icons using just one 1000x1000 pixel icon and flutter_launcher_icons.

Caveat

  1. This walkthrough does not take into account different icons for light and dark
  2. This does not have any Apple Glass handling

Create an app icon

Create a 1000x1000 pixel icon using the tool of your choice.  The icon at the top of the blog was created for fs-game-score using appicons.ai.

Download the icon created in the step above. It should be a 1000x1000 PNG file.

Copy the icon to a place we can find it in the project

mkdirs -p assets/logos
cp <1000x1000 image>.png assets/logos

Add flutter_launcher_icons to pubspec.yaml

Bring flutter_launcher_icons into the project. It should be a dev dependency.

flutter pub add flutter_launcher_icons --dev
flutter pub get

Create the correctly sized images and update Flutter projects

Use flutter_launcher_icons to create the appropriate icons and place them in the correct location. The GitHub project is at fluttercommunity/flutter_launcher_icons . I used these as guides:

You can put the configuration in its own file or add configuration to pubspec.yaml. I modified pubspect.yaml because I didn't want yet another file.


flutter_launcher_icons:
android: true
image_path_android: "assets/logos/flutter-phone-score.png"
ios: true
image_path_ios: "assets/logos/flutter-phone-score.png"
remove_alpha_ios: true
web:
generate: true
image_path: "assets/logos/flutter-phone-score.png"
background_color: "#hexcode"
theme_color: "#hexcode"
windows:
generate: true
image_path: "assets/logos/flutter-phone-score.png"
icon_size: 48 # min:48, max:256, default: 48
macos:
generate: true
image_path: "assets/logos/flutter-phone-score.png"

Use flutter_launcher_icons to configure everything with dart run flutter_launcher_icons

$dart run flutter_launcher_icons

Building package executable...
Built flutter_launcher_icons:flutter_launcher_icons.
════════════════════════════════════════════
FLUTTER LAUNCHER ICONS (v0.14.4)
════════════════════════════════════════════
• Creating default icons Android
• Overwriting the default Android launcher icon with a new icon
• Overwriting default iOS launcher icon with new icon
Creating Icons for Web... done
Creating Icons for Windows... done
Creating Icons for MacOS... done

✓ Successfully generated launcher icons

Results

Running flutter_launcher_icons generated 45 changes across my Android, iOS, MacOS, Windows, Linux, and Web targets.

Revision History

Created 2025 09

Comments

Popular posts from this blog

Installing the RNDIS driver on Windows 11 to use USB Raspberry Pi as network attached

Understanding your WSL2 RAM and swap - Changing the default 50%-25%

Get AI code assist VSCode with local LLMs using LM Studio and the Continue.dev extension - Windows