Azure iOS 推送通知在生产模式下未收到?

Posted

技术标签:

【中文标题】Azure iOS 推送通知在生产模式下未收到?【英文标题】:Azure iOS push notification not receiving on production mode? 【发布时间】:2016-08-09 09:34:49 【问题描述】:

我在我的 ios 应用中使用 Azure 通知中心。最初,我使用沙盒模式在集线器中进行测试,并且可以正常工作。发布应用推送通知后没有收到。然后我将推送通知证书更改为生产并将一个新的 .p12 文件上传到集线器并进行测试,但它再次适用于沙盒但不适用于生产模式。

我是否必须发布应用程序以确保新证书适用于生产模式?

【问题讨论】:

您是否使用了正确的生产 apns api? @lubilis 你所说的 APNS Api 是什么意思?那是天蓝色的端点(连接字符串)吗?。 是的,应该有一个开发端点和一个生产端点 @lubilis 如何分别找出开发端点和生产端点。有两个端点,如 DefaultListenSharedAccessSignature 和 DefaultFullSharedAccessSignature。我在我的应用程序中使用 DefaultListenSharedAccessSignature。 对不起,我不使用 Azure,但我想开发和生产推送服务之间应该有所不同。也许是在 SDK 或不同的 url 中动态设置的属性;更改证书可能还不够 【参考方案1】:

您是在使用同一个集线器还是两个不同的集线器与沙盒和生产证书?根据Azure Notification Hubs troubleshooting guide,您必须使用两个单独的:

Apple 推送通知服务 (APNS) 配置

您必须维护两个不同的中心 - 一个用于生产,另一个 用于测试目的。这意味着上传您的证书 将在沙盒环境中使用到单独的集线器和 您将在生产中使用的证书到单独的集线器。做 不要尝试将不同类型的证书上传到同一个集线器 它可能会导致通知失败。 如果你找到 自己处于无意中上传了不同的位置 证书类型到同一个集线器,建议删除 集线器并重新开始。如果由于某种原因,您无法删除 集线器那么至少,您必须删除所有现有的 从中心注册。

另外,请参阅detailed step-by-step guide for developing iOS apps with Azure Notification Hubs。看看他们如何在那里设置证书,它应该可以工作。

如果这些都没有帮助,请在 cmets 中提及它仍然失败的地方。

【讨论】:

G 我只使用一个集线器。我以前使用的证书是用于开发的,这就是它适用于沙盒的原因。但现在我将其更改为分发证书并将新的 .p12 文件上传到集线器几次。现在有时我会收到生产模式的通知,但有时不会。可能是因为你上面提到的那件事。 我建议遵循建议并创建两个新的独立集线器。从您所写的内容看来,无论如何您都必须发布对应用的更新,因此更新新集线器的连接字符串应该不会太困难。【参考方案2】:

我遇到了同样的问题。我在“沙盒”模式下设置了 Azure 通知中心。测试进行得很顺利,并且在测试设备上收到了通知。我切换到“生产”模式并上传了 .p12 证书。

我立即进行了测试,尽管通知被记录为成功 - 设备上没有收到任何内容。我正要按照建议删除集线器并重新开始,直到我决定再发送一条测试消息 - 并且它在没有更改任何内容的情况下工作。

我的猜测是,从沙盒到生产的更改需要一些时间才能解决。作为一名新的 Xamarin iOS 开发人员,我了解到有时耐心可以解决很多问题。

【讨论】:

以上是关于Azure iOS 推送通知在生产模式下未收到?的主要内容,如果未能解决你的问题,请参考以下文章

即使 Azure 推送通知遥测显示“成功”,也未收到 iOS 推送通知

IOS 在生产环境中没有收到推送通知

获取推送通知的生产 iOS 设备令牌

收到推送通知时显示模式

ASP.NET MVC Azure 应用程序 iOS 推送通知

来自 IOS Xcode 的 Azure 推送通知错误