2013-04-08 36 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插件內部的操作流程。它現在調用一個外部應用程序(獨立的)來執行需要網絡連接的事情。