我有一个使用pushkit(voip推送)的应用程序。
大多数时候,推动都会通过。但当流量很大时,推送不会到达应用程序。
我处于一种可以以某种方式重现错误的状态。
我使用了这里的扩展日志记录:https://developer.apple.com/library/ios/technotes/tn2265/_index.html https://developer.apple.com/library/ios/technotes/tn2265/_index.html
我发现这个来检查日志记录:http://iosdevelopertips.com/core-services/debug-failed-push-messages-by-logging-apsd-process.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 ...
但没有发现任何其他错误信息,为什么会出现这个错误。
港口看起来还可以
重新启动应用程序后,推送会再次通过。
EDIT:
日志文件中的相关错误似乎是:
apsd[82]: Failed sending message to client: com.apple.telephonyutilities.callservicesdaemon.voip.push.development
似乎有两种类型的情况:在某些情况下,这些情况可以在大流量的情况下重现,重新注册推送套件似乎会有所帮助。
在其他随机发生的情况下,它根本就不会发生。重新启动应用程序在这里也没有帮助。
到目前为止,所有有帮助的就是重新启动 iPhone。
EDIT:
我仍在为这个问题苦苦挣扎。
在某些情况下,我会在推送似乎失败之前收到内存警告。
在其他情况下,我会收到如下 xpc 通信警告:
SpringBoard[43] <Warning>: Communications error: <OS_xpc_error: <error: 0x3b7ef614> { count = 1, contents =
"XPCErrorDescription" => <string: 0x3b7ef86c> { length = 22, contents = "Connection interrupted" }
}>
在某些情况下,上述情况都不会发生,但推送仍然不起作用。
编辑:
在开发人员档案中,我发现了这个非常有趣的线程,但仍然没有答案:
有谁知道xpc和push之间是否有联系?
有没有办法检测代码中的 xpc 错误?