我正在编写两个沙盒式macOS应用程序,它们像“服务器”和“客户端”一样运行,其中一个在后台运行,具有权威的逻辑和数据,另一个在前台暂时运行,具有虚拟视图询问后台应用程序应该做什么。
迄今为止最有希望的前景是DistributedNotificationCenter
,但当我看到the documentation for posting
a notification说:{/ p>时,我感到很沮丧。
重要
沙盒应用只有在不包含字典时才能发送通知。如果发送应用程序位于App Sandbox中,则
userInfo
必须为nil
。
因此DistributedNotificationCenter
似乎只能用于跨进程发送通知的名称。多么令人失望!它 说了一些关于notificationInfo
词典的内容,但没有说明如何设置或使用它,所以我认为这是一个错误的意思是userInfo
。
与其声明相符,即使我将com.apple.security.application-groups
权利添加到两个具有相同值的应用中,当我尝试使用postNotificationName
词典调用userInfo
时,它也会失败,将以下内容打印到控制台:
2017-07-26 11:45:44.168865-0400 Foreground App[49005:1967499] *** attempt to post distributed notification 'me.benleggiero.incomingBackgroundServerRequest' thwarted by sandboxing.
是否有Cocoa方式可以在应用之间发送任意数据?它不一定非必要安全;我可以独立确保。我只是想避免设置套接字和其他类似的东西。