发送推送后未注册的设备

Posted

技术标签:

【中文标题】发送推送后未注册的设备【英文标题】:Devices being unregistered after push is sent 【发布时间】:2016-03-09 17:13:17 【问题描述】:

这听起来可能很奇怪,但我看不到任何其他解释。

我已经在 Bluemix 上设置了 IBM Push Notifications,这是我以前做过的。出于某种原因,我构建了这个新应用程序。每次我发送推送通知时,它都没有通过,我再次尝试这样做,它告诉我没有设备。

这只是今天发生在我身上,也许是服务的问题?

我尝试过/注意到的一些事情:

我的设备正在注册并通过控制台从服务接收成功消息。 我只有 1 台设备,但监控现在告诉我 7 台设备已注册通知。 使用 Web 控制台发送推送通知时,第一次显示成功(但没有任何结果),再次单击时显示 Internal Server error: No devices found。 使用 swagger 文档,我输入我的 appID 并搜索设备,但没有出现。我运行应用程序,出现一个,我将应用程序放在后台,仍然显示一个。我通过swagger发送通知,说成功,检查注册设备,返回空数组。 我的 ios 应用程序中的代码仅限于为 IMFPush / IMFCore cocoapods 提供的示例,用于注册。我没有任何类型的退订代码。 我在没有运行任何 node.js 代码或 iOS 代码的情况下仅使用 swagger / Web 控制台工具验证了这一点。 我正在使用以前用于其他应用的沙盒配置文件。 我已删除 IMF 推送服务并重新创建。

任何帮助/见解将不胜感激。

【问题讨论】:

您介意提供您的 appID,以便我们查看我们的服务器端日志,看看那里是否可以找到更多调试信息吗? @JamesYoungIBM 当然,它的2495eebe-8178-4bc0-882d-b42a86313b34 其他任何东西都给我一个喊叫 @JamesYoungIBM 试图启动并运行它。从我的 bluemix 中删除了所有内容,包括使用相同沙盒证书的其他应用程序。现在只有这个应用程序运行,同样的事情又发生了。新的 appId 为:ea773cb6-f9d8-4249-b2a1-fc52eff496cf @JamesYoungIBM 当我试图交换到另一个证书 / appId 时,我注意到我的应用程序 ID 中有错字,这是导致问题的原因。然而,IMFPush 中似乎存在一个错误,当实际上存在错误时,它会返回“成功” @SimonMcLoughlin 您能否详细说明解决此问题的方法。您的 appID 中的错字在哪里。我想在我的环境中重新创建问题,以便我可以打开适当的缺陷 【参考方案1】:

@Simon 请重新下载推送沙箱证书并将其从钥匙串导出为 .p12。这似乎解决了问题。尽管错误的私钥给了您“无效令牌”,但这似乎很奇怪。因此,当您尝试向无效令牌设备发送通知时,Apple 服务器正在删除设备。请确保您按照正确的步骤生成沙盒或生产证书https://console.ng.bluemix.net/docs/services/mobilepush/t_push_provider_ios.html

【讨论】:

嗨,Pradeep,这不是问题所在。正如我上面提到的,我正在重用我以前使用过的 .p12。我的组织有一个庞大的移动团队,并为各种不同的事物创建可重用的测试凭证。我上周使用了这个证书,很好。我取下了那个 bluemix 应用程序,需要构建另一个应用程序,现在我遇到了这种奇怪的行为。 IMFPush 服务没有向我返回任何“无效令牌”错误。我得到“成功”,然后是“未注册设备”。似乎是服务中的一个错误,它没有返回错误,以及这个问题是什么 @SimonMcLoughlin 您的问题解决了吗?您的捆绑包 ID 中的拼写错误是原因吗? @DaveCariello 是的,它已修复。我一定是从苹果那里得到了一个“无效令牌”,但 IMFPush 告诉我成功 @DaveCariello 之前有效的证书可能已被吊销。只需在developers.apple.com 中检查证书状态是否处于活动状态,如果它被撤销,则状态应该是无效的,所以请编辑并保存。使用已编辑的证书配置推送并尝试发送消息。【参考方案2】:

@SimonMcLoughlin 找到了这个问题的根本原因,这是因为私钥错误。要解决此问题,只需使用 .pem 生成 .p12 证书。要使用 .pem 文件创建 p12 文件,请按照以下方法

【讨论】:

以上是关于发送推送后未注册的设备的主要内容,如果未能解决你的问题,请参考以下文章

提供的注册令牌未注册

gcm推送通知:先成功,后IOS未注册

未收到 Phonegap iOS 推送通知

Google Cloud Messaging 设备未收到通知。 (没有“注册应用程序”链接)

Android:推送机器人向某些注册设备组发送通知

如何向 Azure 通知中心注册的每个设备发送不同的推送通知?