2013-04-08 33 views
3

我正在创建一个打印对话框扩展插件(PDE)。 当用户从不同的应用打印时,这个插件被调用并显示,例如 TextEdit,Preview,Xcode等。请注意,插件运行在名为Print Plugin的应用程序之上(例如,TextEdit)。你可以在插件中运行XPC服务吗? (例如打印对话框扩展插件)

在插件里面,我需要运行一个XPC服务。我需要一个XPC服务,因为主应用上的权利可能不足以满足我的需求,例如我需要连接到网络,并且TextEdit没有所需的网络连接权利。

问题是,我无法创建XPC连接。处理程序始终使用XPC_ERROR_CONNECTION_INVALID触发。

1.)这是因为PDE插件不在主包/主应用程序中,例如,文本编辑?
2.)如果是,我该如何在PDE插件中运行XPC服务?
3.)如果否,那么为什么我无法成功创建XPC连接?

+1

几个月前我看到你问这个问题,你从那以后有什么发现吗?你有没有得到它的工作? – yairchu 2013-08-04 10:30:50

+0

请看我的答案。 – MiuMiu 2013-08-09 03:30:34

回答

1

我没有设法让XPC在PDE插件中工作。

XPC包必须位于主应用程序包的Contents/XPCServices目录中,但在我的情况下,主应用程序包会有所不同 - 取决于打开PDE插件的应用程序,例如,文本编辑或预览。将XPC软件包放入PDE软件包中不起作用。

由于这个限制,我重新设计了PDE插件内部的操作流程。它现在调用一个外部应用程序(独立的)来执行需要网络连接的事情。