2011-09-05 168 views
12

我打電話可可:沙盒授權啓動其他應用程序

[[NSWorkspace sharedWorkspace] launchApplication:path]; 

從我的沙盒應用程序,我在控制檯收到此錯誤:

11年9月5日12 :23:12.462 lsboxd:拒絕產卵< PATHEDEDED> for 21383--原因-10826

9/5/11 12:23:12.463 PM應用:spawn_via_launchd()失敗,errno = 54 label = [0x0- 0x1994993] .MYApp path = < PATH REDACTED> flags = 0

9/5/11 12:23:12.464 PM應用程序:LSOpenFromURLSpec()返回-10810爲應用程序<路徑刪除>(null)。

換句話說,我清楚地被阻塞的「啓動服務守護程序沙箱」(lsboxd)不認爲應用程序1,應推出應用程式2.

爲了記錄10826是「用戶沒有權限啓動應用程序「,然後10810是」發生未知錯誤「

有沒有人知道這種情況下的權利?

你怎麼可以啓動從沙盒應用程序的其他應用程序(請不要說AppleScript的 - 這是一個無功能的噩夢,從沙盒應用程序或服務XPC叫尤其是當)。理想的做法是從沙盒內使用(嚴重癱瘓的)NSWorkspace。

回答

3

launchApplication:的參數是應用程序的名稱(即類似於@"Safari"的東西),而不是其路徑。這樣,它一直在爲我工作,沒有任何特殊的權利。我不認爲你可以在不使用PowerBox的情況下從沙盒應用程序的任意路徑啓動應用程序。

+0

路徑/名稱是可選的;它以任何方式工作。主要問題是防止發射的沙箱以及周圍沒有權利的問題。從我在論壇上收集的內容來看,實際上沒有權利。這是主要問題,除非有另一種解決方案。 – SG1

+1

你似乎是正確的關於路徑/名稱,不知道。我只是試圖啓動一個應用程序這種方式在沙盒應用程序,它似乎只要細如應用程序是在/應用程序(我假設〜/應用程序也適用,但沒試過)工作。 – omz