Flutter应用图标生成插件flutter_launcher_icons的使用

发布于 1周前 作者 nodeper 来自 Flutter

Flutter应用图标生成插件flutter_launcher_icons的使用

Flutter应用开发中,为不同的平台(如Android、iOS等)设置应用图标是一项常见的任务。flutter_launcher_icons 插件简化了这一过程,允许开发者通过配置文件自动生成适用于各个平台的应用图标。

📖 使用指南

1. 设置配置文件

自动创建配置文件

运行以下命令以自动创建一个新的配置文件:

dart run flutter_launcher_icons:generate

这将在您的Flutter项目的根目录下创建一个名为 flutter_launcher_icons.yaml 的文件。

指定配置文件位置或名称

如果您希望覆盖默认的位置或名称,可以使用 -f 标志指定配置文件名:

dart run flutter_launcher_icons:generate -f <your config file name here>

覆盖现有配置文件

要覆盖现有的配置文件,请使用 -o 标志:

dart run flutter_launcher_icons:generate -o

或者,您也可以将 flutter_launcher_icons 的配置添加到 pubspec.yaml 文件中。下面是一个简单的例子:

dev_dependencies:
  flutter_launcher_icons: "^0.14.2"

flutter_launcher_icons:
  android: "launcher_icon"
  ios: true
  image_path: "assets/icon/icon.png"
  min_sdk_android: 21 # android min sdk min:16, default 21
  web:
    generate: true
    image_path: "path/to/image.png"
    background_color: "#hexcode"
    theme_color: "#hexcode"
  windows:
    generate: true
    image_path: "path/to/image.png"
    icon_size: 48 # min:48, max:256, default: 48
  macos:
    generate: true
    image_path: "path/to/image.png"

更多复杂的示例可以在 example projects 中找到。

2. 运行插件

完成配置后,只需运行以下命令即可生成图标:

flutter pub get
dart run flutter_launcher_icons

如果您的配置文件不是默认的 flutter_launcher_icons.yamlpubspec.yaml,则需要在运行时指定配置文件名:

flutter pub get
dart run flutter_launcher_icons -f <your config file name here>

注意:如果您不使用现有的 pubspec.yaml,请确保您的配置文件与它位于同一目录下。

🔍 属性详解

以下是 flutter_launcher_icons 配置文件中可指定的所有属性:

全局属性

  • image_path:应用图标的图像文件路径。

Android 平台属性

  • android
    • true:替换指定平台的默认图标。
    • false:忽略该平台的图标生成。
    • icon/path/here.png:生成新图标而不删除旧图标。
  • image_path:应用图标的图像文件路径。
  • image_path_android:仅限Android平台使用的图像文件路径(可选)。
  • min_sdk_android:指定Android最小SDK版本。
  • adaptive_icon_background:适应性图标背景颜色或图像资源。
  • adaptive_icon_foreground:适应性图标前景图像资源。
  • adaptive_icon_foreground_inset:适应性图标前景内边距,默认值为16。
  • adaptive_icon_monochrome:用于Android 13+主题图标的单色图像资源。

iOS 平台属性

  • ios
    • true:替换指定平台的默认图标。
    • false:忽略该平台的图标生成。
    • icon/path/here.png:生成新图标而不删除旧图标。
  • image_path_ios:仅限iOS平台使用的图像文件路径(可选)。
  • remove_alpha_ios:移除iOS图标的Alpha通道。
  • image_path_ios_dark_transparent:iOS 18+平台的深色模式透明图标路径。
  • image_path_ios_tinted_grayscale:iOS 18+平台的灰度模式图标路径。
  • desaturate_tinted_to_grayscale_ios:自动将深色模式图标转换为灰度,默认为false。
  • background_color_ios:移除Alpha通道时使用的背景颜色,默认为白色。

Web 平台属性

  • web
    • generate:是否为Web平台生成图标。
    • image_path:Web图标路径。
    • background_color:更新 web/manifest.json 中的 background_color
    • theme_color:更新 web/manifest.json 中的 theme_color

Windows 平台属性

  • windows
    • generate:是否为Windows平台生成图标。
    • image_path:Windows图标路径。
    • icon_size:Windows应用图标大小,范围为48到256,默认为48。

macOS 平台属性

  • macos
    • generate:是否为macOS平台生成图标。
    • image_path:macOS图标路径。

Flavor 支持

为不同Flavor创建独立的 flutter_launcher_icons 配置文件。配置文件名为 flutter_launcher_icons-<flavor>.yaml,其中 <flavor> 是您的Flavor名称。配置文件格式相同。有关Flavor支持的更多示例,请参阅 example projects with flavors

❓ 故障排除

生成图标颜色与原始图标不同

原因可能是由于 flutter_launcher_icons 所依赖的 image 包进行了更新。解决方法是使用 #AARRGGBB 格式的颜色代码,而不是 #AABBGGRR

图标前景过大或过小

尝试使用带有适当内边距的前景图像,例如 此示例

依赖项不兼容

如果您遇到类似以下的消息:

Because flutter_launcher_icons >=0.9.0 depends on args 2.0.0 and flutter_native_splash 1.2.0 depends on args ^2.1.1, flutter_launcher_icons >=0.9.0 is incompatible with flutter_native_splash 1.2.0.
And because no versions of flutter_native_splash match >1.2.0 <2.0.0, flutter_launcher_icons >=0.9.0 is incompatible with flutter_native_splash ^1.2.0.
So, because enstack depends on both flutter_native_splash ^1.2.0 and flutter_launcher_icons ^0.9.0, version solving failed.
pub get failed (1; So, because enstack depends on both flutter_native_splash ^1.2.0 and flutter_launcher_icons ^0.9.0, version solving failed.)

可以通过临时覆盖所有对依赖项的引用来快速解决问题,具体方法见 此链接

👀 示例项目

您可以参考 default_exampleflavors_example 来了解如何使用 flutter_launcher_icons


以上就是 flutter_launcher_icons 插件的使用说明和配置示例,希望能帮助您更轻松地管理Flutter应用的图标。如果有任何问题,欢迎随时提问!


更多关于Flutter应用图标生成插件flutter_launcher_icons的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用图标生成插件flutter_launcher_icons的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用flutter_launcher_icons插件来生成应用图标的详细代码案例。

步骤1:添加依赖

首先,你需要在pubspec.yaml文件中添加flutter_launcher_icons的依赖。确保你的Flutter环境已经配置好,并且项目已经初始化。

dependencies:
  flutter:
    sdk: flutter
  flutter_launcher_icons: ^0.9.2  # 请根据需要替换为最新版本

flutter_icons:
  image_path: "assets/icon/app_icon.png"  # 替换为你的图标路径
  android: true
  ios: true

步骤2:准备图标文件

确保你的图标文件(例如app_icon.png)位于指定的路径下(在这个例子中是assets/icon/)。图标文件应该是PNG格式,并且符合Android和iOS的图标尺寸要求(通常是1024x1024像素,以保证高质量缩放)。

步骤3:运行命令生成图标

在命令行中,导航到你的Flutter项目根目录,然后运行以下命令:

flutter pub get
flutter pub run flutter_launcher_icons:main

flutter_launcher_icons:main命令会读取pubspec.yaml中的配置,并生成适合Android和iOS的应用图标。

步骤4:检查生成的图标

生成的图标文件通常会放在以下目录:

  • 对于Android:android/app/src/main/res/mipmap-*/
  • 对于iOS:ios/Runner/Assets.xcassets/AppIcon.appiconset/

你可以打开这些目录来检查图标是否已成功生成。

完整示例

以下是pubspec.yaml文件的完整示例,包括flutter_launcher_icons的配置:

name: my_flutter_app
description: A new Flutter application.

version: 1.0.0+1

environment:
  sdk: ">=2.12.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_launcher_icons: ^0.9.2  # 请根据需要替换为最新版本

flutter:
  uses-material-design: true
  assets:
    - assets/icon/app_icon.png

flutter_icons:
  image_path: "assets/icon/app_icon.png"
  android: true
  ios: true

确保你已经安装了所有必要的依赖,并且app_icon.png文件位于assets/icon/目录下。然后,按照上述步骤运行命令生成图标。

这样,你就成功地使用flutter_launcher_icons插件为Flutter应用生成了应用图标。

回到顶部