Flutter Launcher Icons

一个简化更新 Flutter 应用启动器图标任务的命令行工具。完全灵活,允许您选择要更新启动器图标的平台,以及是否要保留旧的启动器图标,以便将来可以恢复。

? 指南

1. 设置配置文件

将您的 Flutter Launcher Icons 配置添加到 pubspec.yaml 文件中,或创建一个名为 flutter_launcher_icons.yaml 的新配置文件。下方是一个示例。更复杂的示例 可以在示例项目中找到

dev_dependencies:
  flutter_launcher_icons: "^0.11.0"

flutter_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"

如果您的配置文件名称不是 flutter_launcher_icons.yamlpubspec.yaml,则在运行该包时需要指定文件名。

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

注意:如果您没有使用现有的 pubspec.yaml,请确保您的配置文件位于其中。 (原文为:ensure that your config file is located in the same directory as it.)

2. 运行包

设置好配置后,只需运行该包即可。

flutter pub get
flutter pub run flutter_launcher_icons

如果您遇到任何问题,请在此处报告

在上面的配置中,该包被设置为用指定图像路径中的图标替换 Android 和 iOS 项目中现有的启动器图标,在 Android 项目中命名为“launcher_icon”,在 iOS 项目中命名为“Example-Icon”。

? 属性

下方列出了您可以在 Flutter Launcher Icons 配置中指定的完整属性列表。

全局

  • image_path: 您要用作应用启动器图标的图标图像文件的位置。

Android

  • android

    • true: 覆盖指定平台的默认现有 Flutter 启动器图标
    • false: 忽略为此平台生成启动器图标
    • icon/path/here.png: 这将为指定名称的平台生成新的启动器图标,而不会删除旧的默认现有 Flutter 启动器图标。
  • image_path: 您要用作应用启动器图标的图标图像文件的位置

  • image_path_android: 特定于 Android 平台的图标图像文件的位置(可选 - 如果未定义,则使用 image_path)

  • min_sdk_android: 指定 Android 的最低 SDK 值 以下两个属性仅在生成 Android 启动器图标时使用

  • adaptive_icon_background: 将用于填充自适应图标背景的颜色(例如 "#ffffff")或图像资源(例如 "assets/images/christmas-background.png")。

  • adaptive_icon_foreground: 将用于自适应图标前景的图像资源 注意:仅当同时指定了 adaptive_icon_background 和 adaptive_icon_foreground 时,才会生成自适应图标。(image_path 不会自动用作前景)

iOS

  • ios
    • true: 覆盖指定平台的默认现有 Flutter 启动器图标
    • false: 忽略为此平台生成启动器图标
    • icon/path/here.png: 这将为指定名称的平台生成新的启动器图标,而不会删除旧的默认现有 Flutter 启动器图标。
  • image_path_ios: 特定于 iOS 平台的图标图像文件的位置(可选 - 如果未定义,则使用 image_path)
  • remove_alpha_ios: 删除 iOS 图标的 alpha 通道

Web

  • web: 添加与 Web 相关的配置
    • generate: 指定是否为此平台生成图标
    • image_path: web icon.png 的路径
    • background_color: 更新 web/manifest.json 中的 background_color
    • theme_color: 更新 web/manifest.json 中的 theme_color

Windows

  • windows: 添加 Windows 相关配置
    • generate: 指定是否为 Windows 平台生成图标
    • image_path: web icon.png 的路径
    • icon_size: Windows 应用图标大小。图标大小应在此约束范围内 48<=icon_size<=256,默认为 48

MacOS

  • macos: 添加 MacOS 相关配置
    • generate: 指定是否为 MacOS 平台生成图标
    • image_path: macos icon.png 文件的路径

注意:iOS 图标应 填充整个图像,并且不包含透明边框。

Flavor 支持

为您的 flavor 创建一个 Flutter Launcher Icons 配置文件。配置文件名为 flutter_launcher-icons-<flavor>.yaml,将 <flavor> 替换为您想要的 flavor 名称。

配置文件格式相同。

已将启用 flavor 支持的示例项目 添加到示例中

❓ 故障排除

列出了几个常见问题及其解决方案

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

这是由于 Flutter Launcher Icons 使用的图像依赖项已更新。

Use #AARRGGBB for colors instead of ##AABBGGRR, to be compatible with Flutter image class.

相关问题

图像前景太大/太小

为获得最佳效果,请尝试使用带有填充的foreground图像,就像 示例中的那个 一样。

相关问题

依赖项不兼容

您可能会收到类似以下的消息

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.)

作为快速修复,您可以暂时覆盖对依赖项的所有引用:此处提供了一个示例

? 示例

Video Example

注意:这显示的是一个非常旧的版本(v0.0.5)

特别感谢

  • 感谢 Brendan Duncan 提供的底层 image package 来转换图标。
  • 非常感谢项目的所有贡献者。每个 PR / 报告的问题都备受赞赏!

GitHub

查看 Github