Приложение-помощник с песочницей не может запустить правильное родительское приложение - PullRequest
3 голосов
/ 26 января 2012

Я использую этот учебник , чтобы добавить элемент входа в мое приложение. Большинство из них работает, как и ожидалось, мне удалось создать изолированное приложение-помощник и зарегистрировать его в службах запуска, поэтому оно запускается при входе в систему в порядке.

Теперь проблема в том, что учебник не очень конкретен о том, как вы должны запускать основной пакет приложений из этого вспомогательного приложения. Включает только это:

[[NSWorkspace sharedWorkspace] launchApplication:
@"/Path/To/Main/App/Bundle"];

Но если я попробую любой метод NSWorkspace, чтобы запустить приложение с полным путем, то это не удастся, потому что Sandbox не позволяет этого.

Если я попытаюсь установить аргумент описанного выше метода только для имени моего приложения, оно будет работать, но, как ни странно, запускает старую версию моего приложения (они хранятся на моем жестком диске, но их нет в / Applications в папке / Applications только правильная версия моего приложения)

Кто-нибудь сейчас объясняет, почему это происходит, или как я могу это исправить?

1 Ответ

6 голосов
/ 14 марта 2012

Я обнаружил, что приложению Helper нужен путь к исполняемому файлу, а не путь к пакету.

Так что, если вы даете его: / Applications / My Great App.app Попробуйте использовать: / Applications /MyGreatApp.app/Contents/MacOS/My Great App

И если ваше изолированное приложение не находится в папке «Приложения», оно будет работать автоматически при регистрации различных ошибок прав доступа.

...