Cocoa:Sandbox有权发布另一个应用程序

时间:2011-09-05 17:33:27

标签: cocoa sandbox nsworkspace

我正在打电话

[[NSWorkspace sharedWorkspace] launchApplication:path];

从我的沙盒应用中,我在控制台中收到此错误:

  

9/5/11 12:23:12.462 PM lsboxd:拒绝生成<路径删除>对于21383 - 原因-10826

     

9/5/11 12:23:12.463 PM App:spawn_via_launchd()失败,错误= 54 label = [0x0-0x1994993] .MYApp path =<路径删除>标志= 0

     

9/5/11 12:23:12.464 PM App:LSOpenFromURLSpec()返回-10810申请<路径删除> (空)。

换句话说,我显然被“启动服务沙盒守护程序”(lsboxd)阻止,它认为应用程序1不应该启动应用程序2.

对于记录10826是“用户没有启动应用程序的权限”,然后10810是“发生未知错误”

是否有人知道此案件的权利?

如何从沙盒应用启动其他应用(请不要说AppleScript - 这是一个无法正常运作的噩梦,尤其是从沙盒应用或XPC服务调用时)。理想的方法是在沙箱中使用(严重残缺的)NSWorkspace。

1 个答案:

答案 0 :(得分:3)

launchApplication:的参数是应用程序的名称(即类似@"Safari"),而不是其路径。这样,它一直在为我工作,没有任何特殊权利。我不认为您可以在不使用PowerBox的情况下从沙盒应用程序中的任意路径启动应用程序。