Ionic Cordova Resources始终使用默认图片而非自定义图片问题求助
解决Ionic CLI v3升级后自定义图标/启动图不生效的问题
我之前维护Ionic 1项目的时候也碰到过类似的坑——升级CLI后明明运行了ionic cordova resources,config.xml也更新了,但APP死活还是用默认的logo。结合你的环境信息(Ionic 1.3.5 + Cordova 8.0.0 + Ionic CLI 3.19.1),给你几个具体的排查和解决步骤:
1. 先确认资源生成过程没有静默失败
运行ionic cordova resources的时候,仔细看命令行输出:
- 有没有提示
Error processing icon/splash之类的错误?比如图片格式异常(必须是PNG格式,尺寸要严格符合要求)、文件权限问题(Windows下资源文件可能被占用导致CLI无法读取)。 - 手动打开
resources/icon.png(1024x1024)和resources/splash.png(2732x2732),确认这两个文件确实是你自定义的图片,没有被误替换成默认图。
2. 强制清理旧资源,重新生成
旧缓存文件是最常见的元凶,按以下步骤操作:
- 手动删除
resources目录下的android、ios、windows子文件夹(这些是CLI自动生成的资源)。 - 如果项目里
www/img/icons或www/img/splashs目录存在旧资源,也一并删掉。 - 运行
ionic cordova resources --force,加上--force参数强制覆盖所有生成的资源,避免CLI复用旧文件。
3. 检查config.xml的配置是否正确
打开config.xml,重点核对这几点:
- 所有
<icon>和<splash>标签的src属性是不是指向resources/[平台]/icon/...或resources/[平台]/splash/...?比如iOS的启动图路径应该是src="resources/ios/splash/Default-2732h.png"这类,而非旧的www/img/...路径。 - 有没有重复的
<icon>或<splash>标签?比如旧配置没被CLI完全替换,导致系统优先加载旧的默认图标路径。 - 确认没有手动添加过指向默认图的自定义配置。
4. 重置Cordova平台,避免平台缓存
有时候platforms/android、platforms/ios这类平台文件夹里的旧资源不会被CLI自动更新,需要彻底重置:
- 先移除平台:
ionic cordova platform remove ios android windows - 重新添加平台:
ionic cordova platform add ios android windows - 再重新运行
ionic cordova resources --force生成资源。
5. 升级Cordova平台版本(可选但推荐)
你的Android平台是6.2.3,iOS是4.5.0,都是比较旧的版本,可能不支持新设备的启动图规格(比如iPhone X),也可能和新Ionic CLI存在兼容性问题:
- 升级Android平台:
ionic cordova platform update android@7.1.4(该版本与Cordova 8.0.0兼容,也支持新启动图规格) - 升级iOS平台:
ionic cordova platform update ios@5.1.1(需在Mac环境下操作)
6. 用完整构建命令测试
不要用ionic cordova run的快速构建,试试完整的生产构建命令:
- Android:
ionic cordova build android --prod --release - iOS(Mac环境):
ionic cordova build ios --prod --release
这样能确保完全重新编译,不会复用之前的缓存资源。
按这些步骤走下来,应该能解决自定义资源不生效的问题。
内容的提问来源于stack exchange,提问作者user1261710
相关产品推荐
相关产品推荐

