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

FCM推送返回成功但iPhone未收到推送通知问题求助

iOS FCM推送返回成功但设备收不到通知的排查方案

我之前调试FCM推送时也遇到过完全一样的情况——后台返回{ "success": 2, "failure": 0 },控制台显示已送达,但iPhone就是没弹出通知。结合踩过的坑,给你整理几个核心排查点:

  • 核对APNs证书与运行环境的匹配性
    FCM是通过APNs给iOS设备推通知的,证书配置错了直接会导致“假成功”。要确认:

    • Firebase后台上传的APNs证书是有效未过期的;
    • 证书对应的环境(开发/生产)和你当前APP的运行环境一致:比如用Xcode直接真机调试是开发环境,要是Firebase里只上传了生产证书,肯定收不到。
  • 检查推送Payload的格式合规性
    iOS对FCM推送的Payload有硬性要求:

    • 如果要触发系统通知弹窗,必须包含aps字典,且里面至少要有alert(可以是字符串或字典)、badge、sound中的一项;
    • 别只传data字段——APP在后台时,纯data类型的推送不会自动弹出通知,必须搭配notification字段或者aps结构。
  • 确认APP的后台模式已开启
    打开Xcode的项目配置 → Signing & Capabilities,确保Background Modes中的Remote notifications选项是勾选状态。没开这个的话,APP在后台/锁屏状态下无法接收并展示推送。

  • 验证Device Token的有效性与环境匹配
    在APP中打印获取到的device token,然后用这个token在Firebase控制台单独推送测试:

    • 如果还是收不到,大概率是token对应的环境和推送环境不匹配(比如开发token用生产配置推送);
    • 另外要确认token没有过期,卸载重装APP后token会变化,记得更新到服务器。
  • 排查iOS系统的通知拦截设置
    除了APP自身的权限,还要检查手机端:

    • 「设置→通知→你的APP」中,「允许通知」是否开启,通知样式有没有设为「无」;
    • 有没有开启「专注模式」或者静音模式,导致通知被屏蔽;
    • 部分iOS版本中,「低电量模式」可能会限制后台推送,可以暂时关闭试试。
  • 查看Xcode控制台的实时日志
    把真机连接到Xcode,运行APP后发送推送,观察控制台输出:

    • 有没有出现didReceiveRemoteNotification的回调?
    • 有没有类似Failed to register for remote notifications的错误提示?
    • 这些日志能直接帮你定位是证书问题、token问题还是APP处理逻辑的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:29:39