2011-09-05 7 views
12

Cocoa:別のアプリケーションを起動するSandboxの資格

 [[NSWorkspace sharedWorkspace] launchApplication:path]; 

私のサンドボックスアプリケーションから、このエラーがコンソールに表示されます:

9/5/11 12:23:12.462 PM lsboxd:スポーンすることを拒否していますxxx24 PATH REDACTED> 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を返しました。PATH REDACTED>(null)。

言い換えれば、私は明らかに、アプリケーション1がアプリケーション2を起動しているとは思わない「Launch Services Sandbox Daemon」(lsboxd)によってブロックされています。

レコード10826は "ユーザーにはアプリケーションを起動する権限がありません」と表示され、10810は「不明なエラーが発生しました」と表示されます。

誰でもこのケースの権利を知っていますか?

サンドボックスアプリケーションから他のアプリケーションを起動するにはどうすればいいですか(AppleScriptは特にサンドボックスアプリケーションやXPCサービスから呼び出されたときには機能しない悪夢です)。理想は、サンドボックス内からNSWorkspaceを使用する方法です。

答えて

3

launchApplication:のパラメータは、そのパスではなく、アプリケーションのの名前(つまり、@"Safari"のようなもの)です。そうすれば、特別な権利なしで働いています。 PowerBoxを使わずにサンドボックスアプリから任意のパスでアプリを起動できるとは思いません。

+0

パス/名前はオプションです。それはいずれの方法でも動作します。主な問題は、打ち上げを妨げるサンドボックスと、これを回避する資格がないことです。私がフォーラムに集めたことから、実際にそこには資格がありません。これは、別の解決策がない限り、主な質問です。 – SG1

+1

あなたはパス/名前について正しいようですが、それを知らなかったのです。私はちょうどこの方法をサンドボックスアプリケーションで起動しようとしましたが、アプリが/アプリケーションにある限り正常に動作するようです(〜/ Applicationも動作しますが、これを試していないと仮定します)。 – omz

関連する問題