Среда запуска демона запуска Mac никогда не вызывает делегат приложения при запуске во время перезагрузки

Я работаю над сервисом Mac OS X, который управляется как демон запуска. У этого нет никакого GUI, но это структурировано как приложение Какао, запущенное с NSApplicationMain.

Кажется, что даже если нет графического интерфейса, есть проблема - все работает нормально при запуске через launchctl в окне терминала, но при перезагрузке системы во время запуска процесса я определил, что после вызова NSApplicationMain() процесс получает застрял. Метод делегата приложения applicationDidFinishLaunching: никогда не вызывается (где мы инициализируем сервис). Там также нет зарегистрированных ошибок, и NSApplicationMain() не возвращает.

Я просмотрел документы по Launch Services, но я не вижу упоминаний об этой проблеме, и при этом я не нашел никакой информации, которая говорит, что среда выполнения NSApplication без GUI требует присутствия сервера входа в систему или сервера окна.

Кто-нибудь имеет опыт работы с этим, знает общий вопрос или имеет четкий ответ, возможно ли запускать запускаемую службу, не основанную на NSApplication без GUI, во время загрузки?

1 ответ

Похоже, что это связано с проблемами пространства имен Bootstrap и, вероятно, подпадает под уже заданный вопрос (который по какой-то причине не появился в результатах, когда я искал stackru для связанных терминов)

Недостатки создания приложения COCOA только для фона в качестве демона запуска?

Другие вопросы по тегам