Flutter iOS上传TestFlight遇Missing Push Notification Entitlement警告,Pusher推送失效
解决Missing Push Notification Entitlement警告及Pusher推送接收问题
检查Apple开发者账号的推送证书与权限
- 登录Apple开发者后台,确认对应App ID已开启Push Notifications服务,并且生成了正确的推送证书(开发/生产环境要对应)。
- 检查Provisioning Profile是否包含推送权限,重新生成并下载导入Xcode,确保Build Settings里的Code Signing使用的是这个Profile。
Xcode项目配置验证
- 打开项目的
Info.plist,确认添加了APS Environment键,值对应环境:开发环境填development,TestFlight生产环境填production。 - 检查Build Settings中的Capabilities,确保Push Notifications开关已打开,Xcode会自动配置entitlements文件。
- 确认entitlements文件中存在
aps-environment条目,值和Info.plist一致。
- 打开项目的
Pusher服务端配置核对
- 确保Pusher使用的推送证书和当前App环境匹配:TestFlight属于生产环境,必须用生产推送证书,不能用开发证书。
- 检查Pusher控制台的App配置,确认推送目标的bundle ID和你的App完全一致,没有拼写错误。
- 验证Pusher发送推送时指定的环境参数是否正确,生产环境要切换到对应的配置项。
设备端与推送权限检查
- 在TestFlight安装的App中,确认已授予推送通知权限(设置->对应App->通知,确保允许通知)。
- 检查设备的APNs令牌是否正确获取并上传到Pusher:在App启动时实现
didRegisterForRemoteNotificationsWithDeviceToken方法,打印令牌并确认已正确发送到Pusher服务端。 - 测试推送时,确保使用的是TestFlight安装设备的正确令牌,模拟器无法接收APNs推送,必须用真机。
上传TestFlight后的额外检查
- 上传App到TestFlight后,在Apple开发者后台的App Store Connect中,查看对应版本的App Integrity,确认没有权限相关的错误提示。
- 如果警告仍然存在,尝试重新归档App,确保归档时使用的是正确的Provisioning Profile和证书,避免缓存的旧配置影响。
内容的提问来源于stack exchange,提问作者BM Chiheb
相关产品推荐
相关产品推荐

