Какао: разрешение «Песочница» для запуска другого приложения - PullRequest
13 голосов
/ 05 сентября 2011

Я звоню

[[NSWorkspace sharedWorkspace] launchApplication:path];

Из моего изолированного приложения, и я получаю эту ошибку в консоли:

9/5/11 12: 23: 12.462 PM lsboxd: отказ от появления для 21383 - причина -10826

9/5/11 12: 23: 12.463 PM Приложение: сбой spawn_via_launchd (), errno = 54 label = [0x0-0x1994993] .MYApp path = flags = 0

9/5/11 12: 23: 12.464 PM Приложение: LSOpenFromURLSpec () вернул -10810 для приложения (null).

Другими словами, меня явно блокирует «демон запуска Sandbox Services» (lsboxd), который не считает, что приложение 1 должно запускать приложение 2.

Для записи 10826 - «У пользователя нет прав на запуск приложения», а затем 10810 - «Произошла неизвестная ошибка»

Кто-нибудь знает о праве на это дело?

Как вы можете запускать другие приложения из изолированного приложения (не говорите, AppleScript - это не функционирующий кошмар, особенно при вызове из изолированных приложений или служб XPC). Идеальным является способ использования (сильно поврежденного) NSWorkspace из песочницы.

1 Ответ

3 голосов
/ 05 сентября 2011

Параметр launchApplication: - это имя приложения (т.е. что-то вроде @"Safari"), а не его путь. Таким образом, он работал без каких-либо особых прав для меня. Я не думаю, что вы можете запускать приложения по произвольным путям из изолированного приложения без использования PowerBox.

...