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.yaml 或 pubspec.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
-
androidtrue: 覆盖指定平台的默认现有 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
iostrue: 覆盖指定平台的默认现有 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_colortheme_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.)
作为快速修复,您可以暂时覆盖对依赖项的所有引用:此处提供了一个示例。
? 示例
注意:这显示的是一个非常旧的版本(v0.0.5)
特别感谢
- 感谢 Brendan Duncan 提供的底层 image package 来转换图标。
- 非常感谢项目的所有贡献者。每个 PR / 报告的问题都备受赞赏!
