You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS开发:无法将调试器附加到UNNotificationServiceExtension

解决UNNotificationServiceExtension调试器断点不触发的问题

我之前也踩过这个调试Extension的坑,这种情况大多是调试时机没卡对,或者推送配置有遗漏导致的。试试下面这几个实用的解决方法:

调整调试触发顺序(最常用的修复方式)

你原来的步骤可能时机没匹配上,换个顺序试试:

  • 先把主应用运行到设备上,然后点击Xcode的停止按钮结束调试会话
  • 在Testing这个UNNotificationServiceExtension里设置好你要调试的断点
  • 选择Debug > Attach to Process by PID or Name,找到Testing并选中,此时Xcode会显示“Testing正在等待附加”
  • 现在发送推送通知,当通知抵达设备的瞬间,Extension进程会启动,调试器应该就能触发断点了

检查推送通知的核心配置

一定要确保你的推送payload里包含mutable-content: 1字段!只有带这个字段的通知,才会触发UNNotificationServiceExtension的执行——如果payload里没加这个,Extension根本不会运行,断点自然就没反应。

举个正确的payload示例:

{
  "aps": {
    "alert": {
      "title": "测试通知",
      "body": "可被Extension修改的通知内容"
    },
    "mutable-content": 1,
    "sound": "default"
  }
}

检查Xcode的调试相关配置

  • 打开Extension target的Build Settings,确认Debug Information Format设置为DWARF with dSYM File(Debug和Release模式都可以检查下)
  • 进入Edit Scheme,找到Extension target的Run配置,确保Debug executable选项是勾选状态
  • 有时候Xcode或者设备的缓存会搞鬼,重启Xcode和你的iPhone,说不定就能解决问题

直接运行Extension Target(更可靠的调试方式)

还有一种更稳妥的操作:

  • 在Xcode顶部的scheme选择器里,切换到Testing这个Extension target
  • 点击运行按钮,Xcode会弹出窗口让你选择要附加的主应用,选你的主应用就行
  • 等主应用启动后,发送带mutable-content:1的推送通知,断点应该就能正常触发了

希望这些方法能帮你搞定调试问题!

内容的提问来源于stack exchange,提问作者user3427013

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:22:42