Среда запуска демона запуска Mac никогда не вызывает делегат приложения при запуске во время перезагрузки
Я работаю над сервисом Mac OS X, который управляется как демон запуска. У этого нет никакого GUI, но это структурировано как приложение Какао, запущенное с NSApplicationMain.
Кажется, что даже если нет графического интерфейса, есть проблема - все работает нормально при запуске через launchctl в окне терминала, но при перезагрузке системы во время запуска процесса я определил, что после вызова NSApplicationMain() процесс получает застрял. Метод делегата приложения applicationDidFinishLaunching: никогда не вызывается (где мы инициализируем сервис). Там также нет зарегистрированных ошибок, и NSApplicationMain() не возвращает.
Я просмотрел документы по Launch Services, но я не вижу упоминаний об этой проблеме, и при этом я не нашел никакой информации, которая говорит, что среда выполнения NSApplication без GUI требует присутствия сервера входа в систему или сервера окна.
Кто-нибудь имеет опыт работы с этим, знает общий вопрос или имеет четкий ответ, возможно ли запускать запускаемую службу, не основанную на NSApplication без GUI, во время загрузки?
1 ответ
Похоже, что это связано с проблемами пространства имен Bootstrap и, вероятно, подпадает под уже заданный вопрос (который по какой-то причине не появился в результатах, когда я искал stackru для связанных терминов)
Недостатки создания приложения COCOA только для фона в качестве демона запуска?