You need to enable JavaScript to run this app. Flutter/Firebase Cloud Messaging 10.0.1+ iOS端无法接收通知求助
优惠活动
大模型
产品
解决方案
定价
更多

Flutter/Firebase Cloud Messaging 10.0.1+ iOS端无法接收通知求助

Flutter iOS端FCM推送收不到通知排查解决步骤
  • 补全AppDelegate缺失的APNs-FCM联动逻辑
    你已配置FirebaseAppDelegateProxyEnabled: NO禁用了Firebase自动代理拦截APNs回调,必须手动实现APNs令牌上报FCM的逻辑,否则FCM无法关联推送请求与APNs通道。首先在AppDelegate头部引入依赖:
import FirebaseMessaging

再在AppDelegate类中添加以下两个方法:

// APNs注册成功后将设备令牌传给FCM
override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
  Messaging.messaging().apnsToken = deviceToken
  super.application(application, didRegisterForRemoteNotificationsWithDeviceToken: deviceToken)
}

// 实现前台通知展示逻辑(需要前台弹出通知时添加)
@available(iOS 10.0, *)
override func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
  completionHandler([.alert, .badge, .sound])
}
  • 检查Xcode能力配置
    确认「Signing & Capabilities」中除了Background Modes下的Remote notifications,还单独添加了Push Notifications能力,该配置是iOS推送生效的必要前提。同时确认当前打包使用的Provisioning Profile已开启推送权限,不要使用未更新权限的旧配置文件。

  • 核对Firebase控制台APNs配置
    确认Firebase控制台对应项目的iOS应用配置中,已正确上传APNs认证密钥(.p8文件)或对应生产/开发环境的APNs证书,TestFlight生产包必须使用支持生产环境的APNs凭证。

  • 确认推送环境匹配性
    TestFlight安装的是生产环境包,从FCM控制台发测试消息时需选择生产环境推送目标,不要选择沙箱开发环境;同时确认写入数据库的FCM令牌是当前TestFlight包生成的生产环境令牌,不要混用开发环境令牌测试。

  • 验证APNs通道本身可用性
    你可以直接用APNs测试工具,通过上传到Firebase的APNs凭证直接给设备发推送,如果能收到说明问题出在FCM与APNs的联动配置,如果收不到说明APNs证书/配置文件本身存在问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 09:24:08