Macos 在XPC上与助手应用程序交谈时出现罕见的XPC\u错误\u连接\u无效错误

Macos 在XPC上与助手应用程序交谈时出现罕见的XPC\u错误\u连接\u无效错误,macos,cocoa,xpc,Macos,Cocoa,Xpc,根据苹果的建议,我们已将删除文件的根级功能分离到一个单独的助手应用程序中,该应用程序通过smjobbles()到/Library/PrivilegedHelperTools和/Library/LaunchDaemons在全球范围内安装 在启动时,我们的应用程序(UninstallPKG)会创建一个到帮助程序的XPC连接(XPC\u connection\u create\u mach\u service()),当它需要删除一个文件时,它会向帮助程序发送一条消息(XPC\u connection\

根据苹果的建议,我们已将删除文件的根级功能分离到一个单独的助手应用程序中,该应用程序通过
smjobbles()
/Library/PrivilegedHelperTools
/Library/LaunchDaemons
在全球范围内安装

在启动时,我们的应用程序(UninstallPKG)会创建一个到帮助程序的XPC连接(
XPC\u connection\u create\u mach\u service()
),当它需要删除一个文件时,它会向帮助程序发送一条消息(
XPC\u connection\u send\u message\u with\u reply\u sync()
),然后帮助程序会执行它的任务

这在我们所有的测试机器上都能很好地工作,对我们的大多数客户来说也是如此。然而,似乎有些用户经常遇到
XPC\u错误\u连接\u无效
失败。
有没有人知道为什么某些客户会出现这种情况,以及我们如何处理或预防这种问题?如果没有更多关于XPC\u ERROR\u CONNECTION\u INVALID实际上意味着什么的信息,我们目前只是退出了这个应用程序,这和崩溃一样糟糕

谷歌或苹果的文档或示例代码几乎没有透露在什么情况下会遇到
XPC\u错误\u连接\u无效
,以及应该如何优雅地处理。如有任何见解,将不胜感激。如果苹果是认真对待这个特权分离的事情,那么关于如何可靠地做到这一点的文档应该得到改进

顺便说一句,在较小程度上,我们也看到了野外出现的
XPC\u错误\u连接中断。我们目前只是忽略它。对这个有什么见解吗


编辑:仅供参考,针对我们在这个问题上花费的DTS事件,苹果在10.12版本中修复了这个问题。早期的系统没有解决方法,但我们没有收到任何关于10.12+上发生这种情况的报告。

很可能是
launchd
出于某种原因正在终止作业。顺便说一句,我想知道您的助手进程是否能够终止,如果可以,是否自动重新启动它?在我的情况下,我不希望助手继续运行,而是在作业完成时终止
launchd
似乎会忽略launchd plist键并无条件重新启动帮助程序。我的帮助程序仅根据每个请求的请求启动。我现在在这个问题上花费了一次DTS事件,当我们发现一些问题时,我会发布解决方案。所以你说你的助手正常退出,并且不会通过
launchd
自动重新启动?你是怎么做到的?@jamesdlin:apple在10.12中解决了这个问题。。。我们在最新的系统上再也看不到这种情况了