Пытаясь заставить мое приложение работать с песочницей, я застрял в этой проблеме:
Мне нужно добавить свое приложение в элементы входа, поэтому я выполнил следующие шаги:
Создание HelperApp.app(сis agent = YES
)что при открытом исполнении этот код:
NSString *appPath = @"/Applications/MyNewApp.app";
[[NSWorkspace sharedWorkspace] launchApplication:appPath];
[NSApp terminate:nil];
Это приложение находится в песочнице.
Я добавил фазу сборки копирования в свой пакет MyNewApp.app с подпутью Contents/Library/LoginItems
и пунктом назначения wrapper
. И, очевидно, MyNewApp.app находится в песочнице
В MyNewApp.app я зарегистрировал с SMLoginItemSetEnabled
идентификатор пакета для HelperApp.app
Теперь все работает правильно, но... когда MyNewApp.app пытается запустить MyNewApp.app я получаю сообщение об ошибке:
LSOpenFromURLSpec() returned -10827 for application /Applications/MyNewApp.app path (null).
Но если я попытаюсь использовать HelperApp.app для запуска не изолированного приложения (, то есть Steam.app ), оно работает как шарм!
Есть ли другой способ запустить приложение? вероятно, NSWorkSpace работает с функциями, не разрешенными в контексте песочницы. Что ты посоветуешь?