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

FCM iOS项目无法接收通知:控制台显示发送成功但设备未收到

解决FCM iOS推送显示成功但设备未接收的问题

我来帮你一步步排查这个头疼的问题——既然Android端推送正常,FCM控制台也显示发送成功,但iOS真机就是收不到,大概率是环境匹配或配置细节没做对,结合你已经开启推送权限、重新生成证书的操作,咱们从这些方向入手:

1. 确认证书和发送环境完全匹配

  • 你上传到FCM的p12证书是开发环境(Development)还是生产环境(Production)?FCM发送通知时必须选对应环境:用开发证书的话,发送时要选「开发」模式;用生产证书就选「生产」模式,环境不匹配是最常见的原因。
  • 再核对证书的Bundle ID:必须和你iOS应用的Bundle ID完全一致,哪怕多一个空格或者大小写错了都不行。导出证书时也要确保勾选了「推送通知」权限,不然证书根本没用。

2. 验证设备FCM Token的环境对应性

  • 你当前测试的iOS应用是Debug模式还是Release模式?Debug模式下获取的Token是开发环境的,只能接收FCM开发模式的推送;Release模式对应的是生产Token,要对应生产推送。可以在应用里加个日志打印Token,然后用这个Token在FCM控制台单独发测试通知,排除批量推送的问题。
  • 如果Token是旧的或者无效的,FCM也会显示发送成功,但设备收不到,所以先确认Token是最新的、有效的。

3. 检查应用的推送相关配置

  • 除了Capabilities里开Push Notifications,别忘了开启Background Modes里的「Remote notifications」,这个选项能保证应用在后台甚至锁屏时也能收到推送。
  • 手动检查设备的通知权限:进入设置→找到你的应用→通知,确认「允许通知」是开着的,并且横幅、声音这些选项也没被关掉——有时候用户不小心关了权限自己都没注意。

4. 细查FCM控制台的发送设置

  • 发送通知时,确认「目标」选的是你的iOS应用,别不小心选成Android应用了。
  • 去看FCM的消息报告:发送完通知后,点进消息详情页,看看有没有送达失败的提示,比如设备注册失效、证书验证失败这些细节,能直接帮你定位问题。

5. 证书导出和上传的细节要拉满

  • 导出p12证书时,一定要选「包含私钥」,并且设置的密码要和上传到FCM时输入的完全一致——密码错了的话,FCM根本没法用这个证书发推送,却会显示发送成功。
  • 你重新生成开发证书后,是不是重新导出了p12并替换了FCM控制台里的旧证书?一定要确保控制台里的证书是最新的那个,旧证书过期或者无效都会导致推送失败。

如果以上都排查完还是不行,建议直接用APNs发送测试通知(绕开FCM),如果APNs能收到,那就是FCM的配置问题;如果APNs也收不到,那就是iOS端证书或权限的问题,这样能快速缩小范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:26:19