我有一个使用pushkit(voip push)的应用程序。 大多数时候推动通过。但是当有很多流量时,推送不会通过应用程序。 我处于一种状态,我可以以某种方式重现错误。
我在这里使用了扩展日志记录: https://developer.apple.com/library/ios/technotes/tn2265/_index.html
我发现这是为了检查日志记录: http://iosdevelopertips.com/core-services/debug-failed-push-messages-by-logging-apsd-process.html
尽管如此,我还是有两个不同的案例,我只是不进一步: - 在apsd-log中我得到了
Received message for enabled topic ...
并且在应用程序中未调用didReceiveIncomingPushWithPayload。我在函数的开头就生成了一个日志条目,没有做任何可能阻止函数完成的特殊条目。 - 在apsd-log中我得到了
Stream error occurred ...
但没有找到任何其他错误消息,为什么会出现此错误。 港口似乎没问题
重新启动应用后,推送再次通过。
编辑:
日志文件中的相关错误似乎是:
apsd[82]: Failed sending message to client: com.apple.telephonyutilities.callservicesdaemon.voip.push.development
似乎有两种类型的情况:在某些情况下,可以通过大流量重现,重新注册pushkit似乎有所帮助。
在其他情况下,随机发生,它根本不会。重新启动应用程序也无济于事。 到目前为止,所有帮助,重新启动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错误?