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

iOS通知Xcode Release测试正常,上架App Store后失效排查

iOS & Flutter FCM上架后推送失效的排查方向

1. APNs环境配置错配

  • Xcode本地Release测试用的是开发环境APNs证书/密钥,但上架App Store必须用生产环境APNs配置。如果Firebase控制台里上传的还是开发环境的密钥,生产环境下推送会直接失败。
  • 直接去Firebase控制台的iOS应用配置页,确认上传的是苹果开发者后台生成的生产环境.p8密钥,且该密钥已开启生产推送权限。

2. 通知授权环节漏处理

  • 本地测试时你可能已经给过App通知权限,但上架后新用户(或重装App的老用户)首次打开时,App如果没弹出授权请求,用户拒绝或未授权的话,根本收不到推送。
  • 检查Flutter代码:确保App启动时调用了FirebaseMessaging.instance.requestPermission(),并且处理了授权结果,比如用户拒绝时给出提示引导开启权限。

3. FCM令牌的环境差异没处理

  • 本地Release测试生成的是开发环境FCM令牌,上架后App生成的是生产环境令牌。如果你的后端还在用测试阶段存的开发令牌发通知,管理员的生产设备肯定收不到。
  • 验证后端逻辑:管理员登录或App启动时,要把新生成的生产令牌上传到服务器,发通知时必须用对应的生产环境令牌,不能混用。

4. 推送内容违反苹果审核规则

  • 苹果对上架App的推送行为有严格限制,如果你的预订通知属于营销类(而非纯功能性),或者内容和App功能无关,可能会被苹果静默拦截。
  • 自查推送内容:确保是和用户预订操作直接相关的功能性通知,同时App的隐私政策里要明确说明通知的用途,避免被判定为违规推送。

5. FCM插件版本或配置有坑

  • 本地测试用的FCM插件版本,和上架打包时的版本如果不一致,或者用了有bug的旧版本,可能导致生产环境推送失效。
  • 检查pubspec.yaml里的firebase_messaging版本,换成最新稳定版,然后重新执行flutter pub get,iOS端还要重新跑pod install。

6. 后端推送逻辑没切换到生产环境

  • 后端发FCM通知时,要是没区分开发和生产环境,比如用了开发环境的推送参数,可能导致生产环境无法正常投递。
  • 确认后端请求FCM接口时,正确设置apns-push-type为alert,apns-environment设为production,确保请求适配生产环境的APNs规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:52:07