Apple Push – didReceiveIncomingPushWithPayload未被调用 – 而是错误:发送消息失败到客户端

我有一个使用pushkit(voip推)的应用程序。 大部分时间推挤通过。 但是,当有很多的stream量,推动不通过应用程序。 我处于可以重现错误的状态。

我使用这里的扩展日志: https : //developer.apple.com/library/ios/technotes/tn2265/_index.html

我发现这个来检查日志logging: http : //iosdevelopertips.com/core-services/debug-failed-push-messages-by-logging-apsd-process.html

尽pipe如此,我还是遇到了两种不同的情况,在这种情况下,我只是没有进一步说明: – 在apsd-log中,我得到了

Received message for enabled topic ... 

在应用程序didReceiveIncomingPushWithPayload不会被调用。 我在函数的开始处生成一个日志条目,并且不做任何特殊的事情,这可能会阻止函数完成。 – 在我得到的apsd日志

 Stream error occurred ... 

但没有find任何其他错误消息,为什么会发生此错误。 港口似乎没问题

重新启动应用程序后,推再次通过。

编辑:

日志文件中的相关错误似乎是:

 apsd[82]: Failed sending message to client: com.apple.telephonyutilities.callservicesdaemon.voip.push.development 

似乎有两种types的情况:在某些情况下,可重复的stream量大,重新登记的推动,似乎有帮助。

在其他情况下,这是随机发生的,但事实并非如此。 重新启动应用程序也没有帮助。 所有帮助到目前为止,重新启动iPhone。

编辑:

我仍然在努力解决这个问题。 在某些情况下,我会在推送似乎失败之前收到内存警告。 在其他情况下,我得到这样的xpc通信警告:

 SpringBoard[43] <Warning>: Communications error: <OS_xpc_error: <error: 0x3b7ef614> { count = 1, contents = "XPCErrorDescription" => <string: 0x3b7ef86c> { length = 22, contents = "Connection interrupted" } }> 

在某些情况下,上述情况都不会发生,但推送仍然不起作用。

编辑:在开发人员档案中,我发现这个非常有趣的线程,但仍然没有答案: https : //devforums.apple.com/thread/257354?start=50&tstart=0

有人知道xpc和push之间是否有联系吗? 有没有办法检测代码中的xpc错误?