На самом деле это очень хороший вопрос, и, похоже, нет особенно хорошего ответа.
SMJobBless имеет проблему с тем, что вам необходимо кодировать инструмент с такой же подписью, как у родительского приложения. К сожалению, это системные настройки, и, следовательно, только Apple может теперь производить необходимые подписи кода для вспомогательного инструмента.
Учитывая это, я думаю, что есть три варианта:
- использовать более старый API авторизации для запуска вспомогательного инструмента (например, AuthorizationExecuteWithPrivileges)
- используйте автономное приложение, чтобы написать настройки
- Roll-your-own Preference API (используется либо из подключаемого модуля prefpane, либо нет)
Хуже всего во всем этом то, что API-интерфейсы CFPreference, по-видимому, полностью не работают - просто ничего не происходит при установке значения глобального предпочтения.
EDIT
К сожалению. Я думаю, что я немного прыгнул вперед. Да, если вы делаете это из своего собственного дополнения, тогда код SMJobBless поможет. Тем не менее, очень сложно кодировать вспомогательное приложение и некоторую форму IPC только для чтения и записи общих значений предпочтений - может быть проще свернуть собственную систему предпочтений с помощью общего файла, если ваши потребности достаточно просты.