AIUI это связано с иерархией пространства имен Маха. Ваша основная программа зарегистрирует свое NSConnection в пространстве имен сеанса пользователя, в то время как LaunchDaemon работает в глобальном контексте, поэтому он не может видеть ни одно пространство имен сеанса. Обратите внимание, что когда вы запускаете помощника с помощью sudo, он все равно работает в контексте сеанса, даже если он работает от имени пользователя root. См. tn2083 , особенно разделы «Контексты выполнения» и «Рекомендации Daemon IPC».
Возможно, вы сможете продать соединение из LaunchDaemon и подключиться из основной программы (так как пространства имен сеансов наследуются от глобального пространства имен), но, вероятно, было бы лучше вообще переключиться на другой механизм. Как Куинн "Эскимос!" указывает на это сообщение , что использование распределенных объектов между доменами безопасности (например, пользовательской программы и демона, работающего от имени пользователя root) очень затрудняет правильную проверку ввода и, следовательно, может привести к ошибкам безопасности.