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

Flutter iOS端无法接收Firebase Cloud Messaging通知问题求助

iOS端FCM通知接收失败排查方案

权限验证

  • 确认代码中已正确请求通知权限,且用户已授权:
    final messaging = FirebaseMessaging.instance;
    final settings = await messaging.requestPermission(
      alert: true,
      badge: true,
      sound: true,
    );
    
    去iOS系统设置→对应App→通知,检查「允许通知」开关是否开启,且声音、提醒样式等选项未禁用。

APNs与证书配置

  • 检查Apple开发者账号中,对应App ID已开启「推送通知」服务,且已生成开发/生产环境的推送证书,并上传至Firebase控制台的项目设置→Cloud Messaging→Apple应用配置中。
  • 推送测试需匹配环境:Xcode真机调试对应开发环境,AdHoc/AppStore打包对应生产环境,发送推送时需指定正确环境(或在FCM payload中设置apns_environment)。

FCM消息结构与回调

  • 后端发送的FCM payload需包含iOS所需的aps字段,示例:
    {
      "notification": {
        "title": "测试通知",
        "body": "这是一条测试消息"
      },
      "apns": {
        "payload": {
          "aps": {
            "sound": "default"
          }
        }
      },
      "token": "DEVICE_FCM_TOKEN"
    }
    
  • 确认前台消息处理逻辑:iOS前台不会自动弹出通知,需在FirebaseMessaging.onMessage.listen中调用本地通知服务(如flutter_local_notifications)展示通知。
  • 后台/杀死状态的消息监听需使用顶级函数注册FirebaseMessaging.onBackgroundMessage,不能用类成员方法(iOS后台沙箱限制)。

Xcode配置细节

  • 确认GoogleService-Info.plist已添加到Xcode项目的Target中(添加时勾选「Copy items if needed」),且文件内的GCM_SENDER_ID、CLIENT_ID与Firebase控制台一致。
  • 在Info.plist中添加以下配置,避免AppDelegate代理冲突:
    <key>FirebaseAppDelegateProxyEnabled</key>
    <string>NO</string>
    
  • 确认Xcode中「Signing & Capabilities」已勾选「Push Notifications」,且「Background Modes」中勾选「Remote notifications」。

依赖与初始化

  • 检查pubspec.yaml中依赖版本兼容性,推荐使用稳定版:
    firebase_core: ^2.15.0
    firebase_messaging: ^14.6.5
    flutter_local_notifications: ^16.1.0
    
  • 确保main函数中先初始化Firebase:
    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      runApp(const MyApp());
    }
    

测试注意事项

  • 必须使用iOS真机测试推送,模拟器不支持APNs服务。
  • 测试杀死App后的推送时,确保设备网络正常,可通过FirebaseMessaging.instance.getToken()获取有效token,在Firebase控制台直接推送测试。

内容的提问来源于stack exchange,提问作者César Espíndola

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:10:15