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

Firebase iOS推送通知发送失败问题排查求助

排查iOS Firebase推送「Registration token not registered」错误

咱们先来拆解你遇到的「Registration token not registered」错误,结合你给出的配置步骤,我梳理了几个最可能的问题点:

1. Bundle ID完全不匹配(最核心的明显问题)

你步骤1创建的App ID是com.company.appname.country,但步骤5生成的开发描述文件是给com.bossitalia.gobooking.ch用的,而且Firebase里配置的也是com.company.appname.country的SSL证书——这完全对不上!
FCM推送是严格绑定Bundle ID的,必须保证三者完全一致:

  • Firebase项目中添加的iOS App的Bundle ID
  • XCode项目设置里的Bundle ID
  • 苹果开发者后台创建的App ID

如果这三个不一致,FCM根本无法把推送请求关联到正确的APNs配置,自然会报token未注册的错误。

2. 目标App ID未启用推送通知服务

你步骤1明确提到,新创建的com.company.appname.country App ID未启用推送通知服务——这是致命问题!
苹果开发者后台的App ID必须开启「Push Notifications」功能,才能生成有效的APNs推送证书,也才能让设备成功向APNs注册,进而获取有效的FCM token。没有开启这个功能的话,整个推送链路从根源上就断了。

3. 推送环境与Token生成环境不匹配

你当前用的是开发证书和开发描述文件,意味着App运行在Debug(开发)环境,对应的APNs环境是Sandbox。如果:

  • Firebase控制台测试推送时,你选择了「Production(生产)」环境
  • 或者你配置的是生产环境的APNs证书,但用的是开发环境生成的token

这两种情况都会导致FCM无法找到对应的APNs设备记录,触发「Registration token not registered」错误。务必保证推送环境和App运行环境完全一致。

4. 设备Token失效或未正确注册

这个错误也可能是Token本身的问题:

  • 检查XCode控制台,确认App启动时是否成功获取到了FCM token,如果没有输出,说明注册过程有问题(比如推送权限被用户拒绝,或者代码里的FCM注册逻辑有误)
  • 如果用户卸载过App、重置过设备,之前的Token就会失效,需要重新获取新的Token再进行测试
  • 确认用户在设备上是否允许了App的推送权限,没有权限的话,设备根本无法注册到APNs

5. APNs证书配置错误

你提到配置了.p12格式的证书,需要确认几个点:

  • 证书对应的Bundle ID必须和你的App完全一致,不能混用其他App ID的证书
  • 证书的环境要匹配:开发环境用Sandbox证书,生产环境用Production证书
  • 导出.p12时,必须从钥匙串中选中证书+对应的私钥一起导出,缺少私钥的证书是无效的

6. 开发描述文件未包含推送权限

你步骤5中生成的开发描述文件是给com.bossitalia.gobooking.ch用的,需要确认:

  • 这个描述文件对应的App ID已经开启了推送通知服务
  • 重新生成描述文件时,要确保勾选了正确的App ID,并且苹果后台会自动包含推送权限的配置(前提是App ID已经开启了推送)
  • 在XCode中查看描述文件的详情,确认里面包含「Push Notifications」的权限

优先排查顺序

建议你先解决前两个问题:统一Bundle ID、给目标App ID开启推送通知服务,这两个是最明显的根源问题,解决后再逐一验证其他点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:55:23