HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 获得APNs响应BadDeviceToken或Unregistered的可能原因是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
向iOS用户发送通知时,对于其中一些用户,我会收到响应状态代码400(BadDeviCEToken)或代码410(未注册).

从关于“BadDeviCEToken”的Apple文档:

“坏”是什么意思?我知道设备令牌在某些时候是有效的.用户如何使其设备令牌变坏?

从关于“未注册”的文档:

这是否意味着应用程序已被删除?或者这种反应可能还有其他原因.

解决方法@H_450_12@
正如您在APNS文档中引用 Table 8-6所述,导致错误的原因有两种:

>设备令牌无效
>设备令牌与环境不匹配

如果是第一种情况,请确保iOS应用程序每次启动应用程序时都会注册设备以进行远程通知,因为设备令牌在启动时会有很多原因,如Configuring Remote Notification Support所述.

如果是第二种情况,您需要确保:

>如果您的应用程序版本使用开发APNS权利进行签名,则后端将使用开发配置
>如果您的应用程序版本使用生产APNS权利进行签名,则后端将使用生产配置.

幸运的是,作为iOS开发人员,您不需要自己直接更改APNS权利.它始终处于开发阶段,只有在为App Store或企业分发生成构建和导出时,Xcode才会自动将其更改为生产.至于后端,您的后端开发人员应该知道如何为开发和生产环境配置后端.对于某些框架,可以切换一些名为isProduction的布尔值.最终,根据Communicating with APNs,在APNs Connections部分下,推送通知将发送到不同的APNS端点,具体取决于环境是生产还是开发.

让我们假装BadDeviCEToken错误是由第二种情况引起的 – 应用程序注册的设备令牌与后端正确配置的开发环境不匹配.首先,在Xcode项目中,检查.entitlements文件并验证APS Environment密钥的值是否为development.它应该如下所示:

接下来,在生成存档后,打开管理器(通过“窗口”菜单>管理器),选择存档,然后单击右侧的“导出…”.您应该看到四种分发方法

如果您选择App Store或Enterprise,您将在后面的对话框中看到Xcode将APNS权利更改为生产(请参阅红色箭头的提示):

如果选择Ad Hoc或Development,则aps-environment下的文本将是开发,然后应与后端的配置匹配.

大佬总结

以上是大佬教程为你收集整理的ios – 获得APNs响应BadDeviceToken或Unregistered的可能原因是什么?全部内容,希望文章能够帮你解决ios – 获得APNs响应BadDeviceToken或Unregistered的可能原因是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。