iOS15下Xcode13构建的APP无法接收APNS Content Available静默推送
iOS 15 静默推送接收规则说明
iOS 15 针对静默推送新增了多项强制校验规则,不符合要求的推送会被APNs或系统直接丢弃,对应要求如下:
1. Payload 格式要求
- aps字典内必须包含
content-available: 1,且不能同时包含alert、sound、badge三个弹窗类字段,否则会被判定为普通通知,不再按静默推送规则分发 - 自定义业务字段需放在aps字典外层,你给出的静默推送payload字段层级符合要求,无需调整
2. APNs 请求头强制要求
- 发送推送时的请求头必须携带
apns-priority字段,且取值固定为5。如果沿用普通通知的apns-priority: 10配置,静默推送会被APNs直接拦截,不会下发到设备 - 请求头的
apns-topic必须和App的主Bundle ID完全一致,禁止配置为通知扩展的Bundle ID,否则会校验失败
3. 客户端配置校验
- Xcode 项目的
Signing & Capabilities需同时开启Push Notifications能力和Background Modes下的Remote notifications子项 - 客户端需调用
UNUserNotificationCenter相关接口申请推送权限,静默推送虽不需要用户同意弹窗通知,但仍需完成权限申请流程才能正常接收 - 若设备关闭了对应App的后台刷新权限,或者App被系统判定为高耗电应用,静默推送会被系统限流甚至完全丢弃,可在系统设置的「App后台刷新」页确认配置状态
内容的提问来源于stack exchange,提问作者PrasathBabu
相关产品推荐
相关产品推荐

