修改App Bundle ID后Firebase Cloud Messaging对接苹果推送失效
Firebase修改Bundle ID后推送失效排查方案
基础配置校验
- 确认
GoogleService-info.plist正确嵌入项目:检查文件是否勾选 Target成员资格,且文件内的BUNDLE_ID字段和当前项目的Bundle ID完全一致,无拼写错误、大小写不匹配问题 - 检查Xcode项目推送能力配置:确认 Signing & Capabilities 标签下已添加
Push Notifications能力,同时Background Modes中勾选Remote notifications选项,注意两项配置必须和新Bundle ID对应的开发者账号配置匹配,不要使用旧的描述文件 - 校验APNs密钥绑定关系:确认Firebase后台上传的APNs密钥,已绑定当前新Bundle ID对应的苹果开发者团队ID,没有绑错团队或者选错App ID前缀
运行时逻辑校验
- 运行App后优先打印FCM token,确认你在Firebase控制台测试时填写的token和App实际获取到的完全一致,修改Bundle ID后旧的FCM token会直接失效,必须使用新安装App后生成的新token测试
- 检查推送权限申请逻辑:确认App首次启动时已调用
UNUserNotificationCenter的权限申请接口,且用户已经同意推送权限,可在手机设置-对应App的通知设置里确认通知权限是否处于开启状态 - 确认FCM注册回调是否成功:实现
Messaging的代理方法,打印注册失败的错误日志,注册过程报错会直接导致后续无法接收推送,常见错误包括APNs证书/密钥不匹配、网络问题等
测试场景校验
- 测试推送时区分开发环境和生产环境:Firebase控制台发送测试通知时,注意选择对应的环境,Xcode直接运行的App属于开发环境,打Ad Hoc或者App Store包属于生产环境,环境选错会导致推送无法送达
- 排查主题订阅延迟问题:新订阅主题后通常需要几分钟的同步时间,订阅完成后立刻发测试推送可能无法送达,建议等待5分钟后再测试主题推送
内容的提问来源于stack exchange,提问作者Sam Phillips
相关产品推荐
相关产品推荐

