Ionic Xcode(Mac端iOS开发)修改Capacitor默认推送通知图标问题
Ionic Xcode(Mac端iOS开发)修改Capacitor默认推送通知图标问题
我太懂这种糟心的感觉了——App图标都改得漂漂亮亮,结果推送一出来还是那个默认的Capacitor图标,瞬间出戏😂 别慌,完全不用改Swift代码,只要按iOS的规范准备图标,再配置好Capacitor和Xcode就行,给你一步步讲:
第一步:按iOS规范准备推送通知图标素材
iOS对推送图标有严格要求,这是很多人踩坑的关键:
- 必须是透明背景的单色PNG图(iOS会自动适配系统主题色,带背景的话会被裁剪得乱七八糟)
- 要准备这几个尺寸(逻辑像素+物理像素对应):
- 20pt @2x → 40×40px
- 20pt @3x → 60×60px
- 29pt @2x → 58×58px
- 29pt @3x → 87×87px
- 40pt @2x → 80×80px
- 40pt @3x → 120×120px
- 图标不要加圆角,iOS会自动给推送图标套圆角蒙版
方式一:用Capacitor Assets CLI自动配置(推荐,省事儿)
用官方CLI能自动把图标导入Xcode,不用手动拖来拖去:
- 先安装Capacitor Assets工具:
npm install -D @capacitor/assets - 在项目根目录创建
assets/notification文件夹,把你准备好的所有尺寸图标放进去 - 运行生成命令,自动同步到iOS项目:
npx capacitor-assets generate --ios
这个命令会自动在Xcode的Assets.xcassets里创建对应的通知图标集,同时更新Capacitor配置。
方式二:手动在Xcode里配置(适合CLI不好用的情况)
如果CLI没生效,手动操作也不难:
- 打开Xcode项目,找到
Assets.xcassets文件 - 右键点击左侧资源列表 → 选择
New Image Set,命名为NotificationIcon(名字要记好,后面要用到) - 把你准备好的各个尺寸图标,拖到Image Set对应的槽位里(注意@2x@3x对应物理像素,别拖错)
- 打开项目根目录的
capacitor.config.ts(或capacitor.config.json),添加iOS通知图标配置:
如果是JSON格式:// capacitor.config.ts import { defineConfig } from '@capacitor/cli'; export default defineConfig({ ios: { notificationIcon: "NotificationIcon" // 这里要和你刚才命名的Image Set名字完全一致! } });// capacitor.config.json { "ios": { "notificationIcon": "NotificationIcon" } } - 同步配置到Xcode:
npx cap sync ios
最后验证&避坑
- 先清理Xcode缓存:点击顶部菜单
Product → Clean Build Folder(快捷键Cmd+Shift+K),避免旧图标缓存干扰 - 重新构建项目到模拟器或真机
- 测试推送:用Xcode的调试工具发一条测试推送,或者用后端触发推送,就能看到新图标了
常见坑提醒:
- 透明背景是刚需:如果你的图标带背景,iOS会只显示角落,看起来像没改一样
- 名字大小写敏感:Capacitor配置里的
notificationIcon值,必须和Xcode里Image Set的名字完全一致(包括大小写) - 不要碰Swift代码:完全不需要修改项目里的Swift文件,所有配置都在资源和Capacitor配置里搞定
按这个步骤来,那个烦人的默认Capacitor推送图标肯定能换掉,亲测有效😉




