Azure Notification Hub和Apple APNS推送通知取消注册设备

时间:2016-11-10 16:50:28

标签: xamarin.ios apple-push-notifications azure-mobile-services

我目前正在使用Xamarin Unified IOS项目开发使用VS构建的应用程序。应用程序的一个要求是使用推送通知。问题是我们的测试设备/应用程序在第一个实例中注册没有任何问题,我们可以在azure门户网站和天蓝色服务总线中看到注册事件。我还使用“服务总线资源管理器”确认了初始注册。应用程序和VS中的服务器资源管理器功能。

发送测试推送通知时会出现问题。根据我访问的所有日志,消息被成功推送到苹果APNS服务器,我看不到作为PNS请求的一部分返回的任何失败。但是,一旦完成,设备注册将被删除,并且通知永远不会到达测试设备。

我的理解是,azure应用程序中心自行处理PNS拒绝,以便整理设备注册。这本身并不是一个可怕的想法,但由于缺乏记录,很难确定根本原因。我已经为这个谷歌做了大量的谷歌搜索,很多人建议使用苹果证书的问题。我已经删除,重新创建,重新签名,验证了APNS证书和配置文件,直到我用完了组合。这些都没有解决问题。

如果我使用' http://pushtry.com等服务,请使问题更加混乱。或者' http://pushwatch.com'并上传证书和设备令牌,它将允许我成功地将通知推送到设备。

我错过了一些明显的东西吗?或APGE的设置和调试是否非常困难?

您可以提供任何帮助,我会发布一些代码,但是因为我知道设备注册了正确的设备令牌,我现在还没有看到它是必要的,但请随时告诉我们否则我。非常感谢。

2 个答案:

答案 0 :(得分:1)

还需要注意的是,如果您使用 Azure 通知中心 APNS,如果应用程序模式未设置为生产中,它将取消注册设备。部署到应用商店后,需要将 Azure 通知中心中的“应用程序模式”从沙盒切换到生产。否则,您的设备注册将被取消注册。

enter image description here

我在沙盒和生产中使用相同的令牌/密钥,没有任何问题。

enter image description here

答案 1 :(得分:0)

在经过许多工时并且通过运气而不是任何逻辑过程之后,我们确定了“Azure通知中心”'有一个内置的验证器,用于传递给APNS的苹果设备令牌。因此,即使有多个示例和答案建议向通知中心提交没有空格或符号的设备令牌,这实际上是错误的方法。应始终将设备令牌提交给Azure通知中心'在一个'原样'在Xamarin.IOS应用程序中没有任何验证的状态。虽然这似乎是一件容易忽视的事情,但Google上有很多相互矛盾的证据,Azure的文档对提交的设备令牌的格式几乎没有说明。无论如何,希望有一天这会帮助别人。

- 编辑 -

Apple的设备令牌格式:< XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX>

许多在线资源建议将其传递到通知中心的格式为:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 没有空格或'<&#;和'>'

然而,它应该从Apple收到通知中心。