Flutter iOS本地通知仍显示默认图标问题求助
iOS本地通知仍显示默认Flutter图标的排查方向
通知图标未单独配置
iOS的应用图标和通知图标是独立资源,即便替换了应用图标,若未专门配置通知图标,系统会默认使用Flutter图标。如果使用flutter_local_notifications这类插件,初始化时需指定icon参数(对应Assets.xcassets中的图标名称),同时要确保图标已正确添加到资源文件中。Assets.xcassets配置错误
检查通知图标是否正确导入Assets.xcassets:- 确认图标设置了对应分辨率的版本(@1x、@2x、@3x);
- 通知图标必须是透明背景的单色PNG,iOS会自动处理图标颜色,非透明背景的图标会被系统替换为默认图标;
- 检查图标名称拼写(iOS文件名大小写敏感),确保和代码中引用的名称完全一致。
Xcode缓存未彻底清理
仅执行flutter clean可能不够,需清理Xcode的Derived Data:- 打开Xcode,点击顶部菜单栏
Product->Clean Build Folder(快捷键Cmd+Shift+K); - 手动删除
~/Library/Developer/Xcode/DerivedData目录下对应项目的缓存文件夹。
- 打开Xcode,点击顶部菜单栏
通知插件配置遗漏
以flutter_local_notifications为例,iOS端需完成额外配置:- 在
Info.plist中添加通知权限相关配置; - 若使用自定义图标,确保插件初始化时的
iOSInitializationSettings中指定了正确的图标名称,且该图标已添加到Assets.xcassets。
- 在
图标格式/尺寸不符合要求
iOS通知图标需满足以下规格:- 格式:PNG;
- 尺寸覆盖:20x20pt、29x29pt、40x40pt、60x60pt的@1x/@2x/@3x版本;
缺少对应尺寸的图标会导致系统 fallback 到默认图标。
分发缓存问题
若通过TestFlight或Ad Hoc分发应用,需确保重新打包时包含了新的通知图标,且已上传最新版本到苹果后台,避免测试设备安装的是旧缓存包。
内容的提问来源于stack exchange,提问作者nonso edu
相关产品推荐
相关产品推荐

