Postman发送iOS推送返回InvalidApnsCredential错误 配置核验均正常
iOS推送InvalidApnsCredential错误排查方案(已核验核心配置场景)
InvalidApnsCredential错误的本质是推送服务与苹果APNs服务之间的身份校验失败,你已经确认key id、team id、bundle id无误的前提下,按以下优先级排查:
- 核验APNs凭证的状态与类型
如果你使用p8密钥推送,确认密钥未在苹果开发者后台被吊销,且已经开启APNs服务权限;如果使用.p12证书,确认证书类型与推送环境匹配:开发证书仅可推送开发环境包(Xcode直接安装的测试包),生产证书仅可推送TestFlight/App Store安装的生产包,两者混用直接触发该错误。 - 补充必填的APNs请求头参数
iOS 13及以上版本要求APNs请求必须携带apns-push-type字段标注推送类型,你当前的请求参数未携带该字段,也没有指定推送环境,容易触发校验失败。调整后的请求参数示例如下:
{ "to" : "frK6tcKU3Uz1lYhzKWkQGe:APA91bF6Yk7AjYPvkWnfWH_3cSEsxZoniD2IrhgsVC4kCFxpzqxe6SRQMfBzmBJKVIBGOpIeU4VOlybLwSU0AIaCPH7LxhPyclyIKXU7qkIP2XZE2lyzpI7R85vNMQHZiixVYmsfyYhn", "notification" : { "body_loc_key" : "ALERT_NOTIFICATION_MESSAGE_BALANCE_AND_MOVEMENT_ALERT", "title_loc_key": "BALANCE_AND_MOVEMENT_ALERT_TITLE", "sound" : "default" }, "apns": { "headers": { "apns-push-type": "alert", "apns-priority": "10", "apns-topic": "替换为你的实际bundle id" }, "fcm_options": { "apns_authentication_method": "token" } }, "dry_run": false }
- 核验设备令牌有效性
确认当前使用的fcm token为对应bundle id的iOS设备生成,未使用安卓设备的fcm token,也不是app卸载重装后生成的过期令牌。 - 排除中间推送服务配置问题
如果以上排查都没有问题,可直接通过curl命令调用原生APNs接口推送测试,如果原生调用成功,说明你所用的推送服务商(当前为FCM)后台的APNs凭证配置有误,重新上传一次凭证即可解决。
内容的提问来源于stack exchange,提问作者Alexandra
相关产品推荐
相关产品推荐

