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

iOS NotificationContentExtension(NCE)富通知长按后无内容显示求助

NotificationContentExtension长按通知空白排查方案
  • 核对Extension与推送的Category匹配
    检查Extension的Info.plist中NSExtensionAttributes下的UNNotificationExtensionCategory值,必须和推送Payload里aps字典中的category字段完全一致(大小写、拼写都不能错)。这是Extension被唤起的核心条件,不匹配的话直接不会加载自定义UI。

  • 确认Extension是否被正常唤起
    在NotificationViewController的didReceive(_ notification: UNNotification)方法中添加日志打印(比如print("Extension did receive notification")),或者打个断点。如果运行时没触发这个方法,说明推送没有触发Extension,优先检查category和mutable-content配置。

  • 排查UI布局问题
    给自定义UI的根视图设置一个显眼的背景色(比如红色),运行后看长按通知时是否能显示这个颜色。如果能显示,说明是子控件的约束没设置好导致看不见;如果还是空白,可能是根视图本身的约束缺失,或者Extension的视图尺寸配置有问题。

  • 验证推送Payload的关键字段
    推送的APNs Payload必须包含aps.mutable-content: 1,示例格式如下:

    {
      "aps": {
        "alert": {
          "title": "测试通知",
          "body": "这是一条富通知"
        },
        "category": "你的自定义Category",
        "mutable-content": 1
      }
    }
    

    本地通知则需要在创建UNMutableNotificationContent时设置content.mutableContent = true。

  • 检查资源与签名配置

    • 自定义UI用到的图片、XIB等资源,必须勾选Extension的Target Membership(右键资源文件→查看Target Membership),确保Extension能访问到这些资源。
    • 确认Extension的签名证书与主App一致,且主App和Extension都开启了Push Notifications权限(在Capabilities中检查)。
  • 清理缓存与重新部署
    除了你已经尝试的操作,还可以删除App的容器文件(在Xcode的Window→Devices and Simulators中选中设备里的App,点击齿轮→Show Container),彻底清理后重新打包部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:55:16