You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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,不用手动拖来拖去:

  1. 先安装Capacitor Assets工具:
    npm install -D @capacitor/assets
    
  2. 在项目根目录创建assets/notification文件夹,把你准备好的所有尺寸图标放进去
  3. 运行生成命令,自动同步到iOS项目:
    npx capacitor-assets generate --ios
    

这个命令会自动在Xcode的Assets.xcassets里创建对应的通知图标集,同时更新Capacitor配置。

方式二:手动在Xcode里配置(适合CLI不好用的情况)

如果CLI没生效,手动操作也不难:

  1. 打开Xcode项目,找到Assets.xcassets文件
  2. 右键点击左侧资源列表 → 选择New Image Set,命名为NotificationIcon(名字要记好,后面要用到)
  3. 把你准备好的各个尺寸图标,拖到Image Set对应的槽位里(注意@2x@3x对应物理像素,别拖错)
  4. 打开项目根目录的capacitor.config.ts(或capacitor.config.json),添加iOS通知图标配置:
    // capacitor.config.ts
    import { defineConfig } from '@capacitor/cli';
    
    export default defineConfig({
      ios: {
        notificationIcon: "NotificationIcon" // 这里要和你刚才命名的Image Set名字完全一致!
      }
    });
    
    如果是JSON格式:
    // capacitor.config.json
    {
      "ios": {
        "notificationIcon": "NotificationIcon"
      }
    }
    
  5. 同步配置到Xcode:
    npx cap sync ios
    

最后验证&避坑

  1. 先清理Xcode缓存:点击顶部菜单Product → Clean Build Folder(快捷键Cmd+Shift+K),避免旧图标缓存干扰
  2. 重新构建项目到模拟器或真机
  3. 测试推送:用Xcode的调试工具发一条测试推送,或者用后端触发推送,就能看到新图标了

常见坑提醒:

  • 透明背景是刚需:如果你的图标带背景,iOS会只显示角落,看起来像没改一样
  • 名字大小写敏感:Capacitor配置里的notificationIcon值,必须和Xcode里Image Set的名字完全一致(包括大小写)
  • 不要碰Swift代码:完全不需要修改项目里的Swift文件,所有配置都在资源和Capacitor配置里搞定

按这个步骤来,那个烦人的默认Capacitor推送图标肯定能换掉,亲测有效😉

火山引擎 最新活动