Flutter应用Firebase FCM消息在TestFlight发布版完全无法接收求助
排查方案
- APNs证书/密钥环境校验:TestFlight属于iOS生产环境,需确认Firebase控制台iOS应用配置页已上传生产环境APNs证书,若使用APNs密钥需确认密钥权限包含生产环境推送权限,未被限制仅开发环境可用。
- Swift代理方法签名修正:你当前实现的
didRegisterForRemoteNotificationsWithDeviceToken方法缺少必要的参数标签与override声明,正确写法如下:
override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { super.application(application, didRegisterForRemoteNotificationsWithDeviceToken: deviceToken) print(deviceToken) Messaging.messaging().apnsToken = deviceToken }
原方法签名不匹配系统代理要求,生产环境打包时不会被系统触发,导致FCM无法获取生产环境APNs token,是该问题最可能的诱因。
- 打包签名配置校验:确认导出TestFlight安装包时使用的Provisioning Profile包含生产环境推送权限,Xcode的Signing & Capabilities面板中Push Notifications功能的Production选项已勾选。
- 推送目标环境校验:若你自行实现推送发送逻辑,需确认发送给TestFlight版本的推送请求中,APNs配置的
environment参数设置为production,而非开发用的sandbox;VoIP推送的apns-push-type需指定为voip,apns-topic需与应用Bundle ID保持一致。 - 冗余配置清理:Info.plist的
UIBackgroundModes数组中remote-notification重复添加了两次,建议删除多余条目避免不可预知的异常。 - Token上报日志排查:可在TestFlight版本中增加埋点日志,确认生产环境下APNs token、PushKit token是否正常生成并上报到FCM与业务后台,若token未上报需进一步排查权限申请逻辑是否正常。
内容的提问来源于stack exchange,提问作者CybeX
相关产品推荐
相关产品推荐

