0

Mac App Store にあるアプリで、次のことを行っていました。

system("/usr/bin/nice -n 20 /usr/bin/purge &> /dev/null &");

これは問題なく機能しましたが、現在、新しいバージョンを提出しようとしており、サンドボックスを有効にするよう強制されています。ただし、サンドボックスでは、その呼び出しは失敗し、コンソールに次のようなメッセージが表示されます。

7/20/13 12:58:59.000 AM kernel[0]: Sandbox: sh(28537) deny file-read-data /dev/ttys000
7/20/13 12:58:59.968 AM purge[28538]: bootstrap_look_up(): Permission denied
7/20/13 12:59:00.000 AM kernel[0]: Sandbox: purge(28538) deny mach-lookup com.apple.appleprofilepolicyd
7/20/13 12:59:00.521 AM purge[28538]: <CPDevice.m:3813> Unable to create new counter client.
7/20/13 12:59:00.523 AM purge[28538]: <CPOSX.m:1188>    Unable to get user client so as to poke the kernel.
7/20/13 12:59:00.000 AM kernel[0]: Sandbox: purge(28538) deny iokit-open ApplePerformanceCounterManagerUserClient
7/20/13 12:59:00.000 AM kernel[0]: Sandbox: purge(28538) deny iokit-open AppleProfileUtilitiesUserClient
7/20/13 12:59:00.000 AM kernel[0]: AppleProfileUtilitiesUserClient: bad busy count (0,-1)
7/20/13 12:59:00.000 AM kernel[0]: Backtrace 0xffffff802d22d4d2 0xffffff802d231fc9 0xffffff802ceb3137 0 0 0 0

これを回避する方法はありますか?

4

1 に答える 1

0

NSTask と Sandboxing に関する公式の言葉は、「一部の実行可能ファイルは機能する可能性があります」です。私にとって、これは「当てにするな」という意味です。現在停止中の Apple Dev Forums には、これに関する多くの質問があり、purge間違いなくブラックリストに載っているようです。

于 2013-07-26T21:58:13.687 に答える