Моему пользовательскому setup.app на основе Cocoa в Mac OSX, который я создал в Objective C, необходимо установить LaunchDaemon для выполнения задач с повышенными привилегиями, таких как антивирусная программа, которая должна сканировать весь жесткий диск и, следовательно, требует привилегий root. Как я могу заставить мое приложение установки запрашивать у клиента вход в систему с правами администратора, а затем установить этот LaunchDaemon в /Library/LaunchDaemons (и обратите внимание, что я не имею в виду ~/Library/LaunchDaemons)?
В настоящее время я справляюсь с этим, используя AppleScript с правами администратора. Он запрашивает этот логин, а затем AppleScript выполняет копирование в эту папку без жалоб ОС. Однако я предполагаю, что это неправильная техника - что я должен каким-то образом делать это полностью в Objective C?
Обратите внимание, что я не могу использовать SMBlessJob в этом случае, потому что именно по этой причине я создаю Launch Daemon в первую очередь.
ИСХОДНАЯ ИНФОРМАЦИЯ
У меня есть особая потребность в создании пользовательского setup.app — точно так же, как в приложении Norton AV используется пользовательское setup.app. Это связано с тем, что установщики Apple PKG и DMG не разрешают загрузку очень больших файлов (например, определений вирусов) с сервера во время установки с какой-либо дружеской обратной связью. Я имею в виду, что я могу заставить файл PKG загружать файл с сервера при запуске Perl-скрипта или Bash-скрипта, но тогда установщик просто вешает индикатор выполнения на количество минут, которое требуется для загрузки, не давая никакой другой обратной связи для пользователя, за исключением того, что завис индикатор выполнения, и поэтому пользователь думает, что установщик сломался, когда это не так. Вот почему мне пришлось создать свой собственный setup.app, как это сделал Norton для своего AV-приложения.