3

我正在创建一个打印对话框扩展 (PDE) 插件。当用户从不同的应用程序(例如 TextEdit、Preview、Xcode 等)进行打印时,会调用并显示此插件。请注意,该插件运行在调用打印插件(例如,TextEdit)的应用程序之上。

在插件内部,我需要运行 XPC 服务。我需要 XPC 服务,因为主应用程序上的权利可能不足以满足我的需求,例如我需要连接到网络,而 TextEdit 没有网络连接所需的权利。

问题是,我无法创建 XPC 连接。处理程序总是以 XPC_ERROR_CONNECTION_INVALID 触发。

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

4

1 回答 1

1

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

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

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

于 2013-08-07T02:39:59.043 回答