✨ Icons Launcher ✨

A command-line tool that simplifies the task of updating your Flutter app's launcher icon. Full flexibility allows you to only update the launcher icon for specific platforms as needed.

Pub Package Star on Github Forks on Github Watchers on Github Contributors Build Status Code size License: MIT Platform

icons launcher preview

Platform Support

AndroidiOSMacOSWebLinuxWindows
✔️✔️✔️✔️✔️✔️

Guide

1. Setup the config file

Add your Icons Launcher configuration to your pubspec.yaml or create a new config file called icons_launcher.yaml.

An example is shown below. More complex examples here.

Method 1: use with pubspec.yaml

dev_dependencies:
  icons_launcher: ^1.1.7

flutter_icons:
  image_path: 'assets/ic_logo_border.png'
  ios: true
  android: true

Method 2: create icons_launcher.yaml at project root

flutter_icons:
  image_path: 'assets/ic_logo_border.png'
  ios: true
  android: true

2. Run the package

After setting up the configuration, all that is left to do is run the package:

flutter pub get
flutter pub run icons_launcher:main

If you name your configuration file something other than icons_launcher.yaml or pubspec.yaml you will need to specify the name of the file when running the package.

flutter pub get
flutter pub run icons_launcher:main -f <your config file name here>

NOTE: If you are not using the existing pubspec.yaml your config file must still be located in the same directory as it.

If you encounter any issues please report them here.

In the above configuration, the package is setup to replace the existing launcher icons in both the Android and iOS project.


Attributes

Shown below is the full list of attributes which you can specify within your Icons Launcher configuration.

  • android/ios/web/macos/windows/linux

    • true: Override the default existing Flutter launcher icon for the platform specified
    • false: Ignore making launcher icons for this platform
    • icon/path/here.png: This will generate a new launcher icons for the platform with the name you specify, without removing the old default existing icon launcher.
  • image_path: The location of the icon image file which you want to use as the app launcher icon

  • image_path_android: The location of the icon image file specific for Android platform (optional - if not defined then the image_path is used)

  • image_path_ios: The location of the icon image file specific for iOS platform (optional - if not defined then the image_path is used)

  • image_path_macos: The location of the icon image file specific for MacOS platform (optional - if not defined then the image_path is used)

  • image_path_windows: The location of the icon image file specific for Windows platform (optional - if not defined then the image_path is used)

  • image_path_linux: The location of the icon image file specific for Linux platform (optional - if not defined then the image_path is used)

  • image_path_web: The location of the icon image file specific for Web platform (optional - if not defined then the image_path is used)

The next three attributes are only used when generating Android adaptive launcher icon (Read more)

  • adaptive_icon_background: The color (E.g. "#ffffff") or image asset (E.g. "assets/ic_background.png") which will be used to fill out the background of the adaptive icon.

  • adaptive_icon_foreground: The image asset which will be used for the icon foreground of the adaptive icon

  • adaptive_icon_round: The image asset which will be used for the round icon of the adaptive icon (optional)

Note: iOS icons should fill the entire image and not contain transparent borders.


Flavor support

Create a Icons Launcher configuration file for your flavor. The config file is called icons_launcher-<flavor>.yaml by replacing <flavor> by the name of your desired flavor.

The configuration file format is the same.


Example

Use in pubspec.yaml

dev_dependencies:
  icons_launcher: ^1.1.7

flutter_icons:
  # image_path: 'assets/ic_logo_border.png'
  image_path_android: 'assets/ic_logo_border.png'
  image_path_ios: 'assets/ic_logo_rectangle.png'
  image_path_macos: 'assets/ic_logo_border.png'
  image_path_windows: 'assets/ic_logo_border.png'
  image_path_linux: 'assets/ic_logo_border.png'
  image_path_web: 'assets/ic_logo_border.png'
  adaptive_icon_background: 'assets/ic_background.png'
  adaptive_icon_foreground: 'assets/ic_foreground.png' 
  adaptive_icon_round: 'assets/ic_logo_round.png' #! (Optional)
  remove_alpha_ios: false
  remove_alpha_macos: false
  ios: true
  android: true
  macos: false
  windows: false
  linux: false
  web: false

Or use in custom yaml (icons_launcher.yaml)

flutter_icons:
  # image_path: 'assets/ic_logo_border.png'
  image_path_android: 'assets/ic_logo_border.png'
  image_path_ios: 'assets/ic_logo_rectangle.png'
  image_path_macos: 'assets/ic_logo_border.png'
  image_path_windows: 'assets/ic_logo_border.png'
  image_path_linux: 'assets/ic_logo_border.png'
  image_path_web: 'assets/ic_logo_border.png'
  adaptive_icon_background: 'assets/ic_background.png'
  adaptive_icon_foreground: 'assets/ic_foreground.png' 
  adaptive_icon_round: 'assets/ic_logo_round.png' #! (Optional)
  remove_alpha_ios: false
  remove_alpha_macos: false
  ios: true
  android: true
  macos: false
  windows: false
  linux: false
  web: false

This package is forked from flutter_launcher_icons which includes fixed common issues and adds more platform support.

Libraries

constants
custom_exceptions
main
utils
xml_templates