图标和启动页必须通过manifest.json的app-plus.distribute.icons分平台配置:android需hdpi/xhdpi/xxhdpi/xxxhdpi四档本地png路径,ios需appstore/2x/3x三尺寸且无透明边,鸿蒙复用android字段;路径须static/开头,改后须云打包生效。

manifest.json 中 icons 节点必须按平台分层写死路径
图标不是丢一张 icon.png 就能自动适配。uni-app 的 App 端(Android/iOS)图标由 manifest.json 的 app-plus.distribute.icons 控制,且 Android 和 iOS 必须分开配置,不能共用字段。
- iOS 不识别
android下的任何字段,反之亦然;误写进错节点会静默失效 - 路径必须是项目内相对路径,以
static/开头,例如"mdpi": "static/icons/icon-48.png",不能用/static/或网络地址 - 文件名大小写、扩展名(
.png)、@2x 后缀必须与实际文件完全一致——icon-120@2x.png和icon-120.png是两个不同文件
Android 多密度图:hdpi/xhdpi/xxhdpi/xxxhdpi 缺一不可
Android 图标必须提供至少 4 种密度规格,否则在部分机型上会拉伸模糊或显示默认白图标。云打包时,缺失任一密度都会触发降级逻辑,但效果不可控。
-
mdpi(48×48)和ldpi已基本淘汰,可不配;但hdpi(72×72)、xhdpi(96×96)、xxhdpi(144×144)、xxxhdpi(192×192)必须全有 - 鸿蒙系统直接复用 Android 字段,所以
xxxhdpi推荐用 192×192,它会被鸿蒙当作主图标源 - 所有 PNG 文件必须无透明边框、Alpha 通道干净——某些安卓 ROM 渲染时若含半透像素,边缘会发灰
iOS 图标必须满足 Storyboard + 多尺寸双轨要求
iOS 不仅要配应用图标,还要为启动屏(LaunchScreen)单独准备 Storyboard ZIP 包;二者缺一,真机安装后要么图标不显示,要么启动页白屏。
- 应用图标需三档:
appstore(1024×1024)、iphone.2x(120×120)、iphone.3x(180×180);iPad 图标如需支持,还得加ipad.2x(152×152) - 启动屏 Storyboard 不是图片路径配置,而是独立 ZIP 包:内含
LaunchScreen.storyboard+launchimage@2x.png+launchimage@3x.png,根目录平铺,不能套文件夹 - 所有 iOS 图标禁止圆角、禁止透明背景——App Store 审核会因 ITMS-90717 错误拒绝包体
改完 manifest.json 后必须重新云打包,本地调试无效
manifest.json 修改只影响「发行 → 原生 App-云打包」产出物,运行到手机或模拟器(HBuilderX 的“运行”按钮)完全不读取该配置。
- 改完后务必删掉项目根目录下的
unpackage/文件夹再打包,否则 HBuilderX 可能缓存旧 manifest 内容 - 打包前用资源检查脚本确认文件存在:
uni.getImageInfo({ src: 'static/icons/icon-144.png' })返回成功才说明路径正确 - iOS 真机测试必须走 Xcode 打开打包生成的 .xcodeproj,直接安装 ipa 可能因签名缺失导致图标回退成默认白块











