Изменение предоставляемых услуг в зависимости от пользовательских настроек в OSX? - PullRequest
1 голос
/ 26 ноября 2009

Я хотел бы иметь возможность изменять службы OSX, которые предоставляет мое приложение, на основе предпочтений текущего пользователя (например, добавление еще, изменение имени, ...). Это в основном означает изменение Info.plist (ключ NSService), но я не думаю, что это хорошая практика, когда приложение изменяет свой собственный Info.plist во время работы, верно? (По крайней мере, на основе нескольких поисков здесь). Есть ли другой вариант, как получить эту функциональность?

Я думаю, что всегда должен быть внешний объект, который изменяет Info.plist? До сих пор я могу думать только о предоставлении пакета системных настроек, который внесет изменения в реальное приложение? У вас есть идеи?

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 июня 2011

Вот небольшой поворот к предыдущим рекомендациям, создайте отдельное приложение, которое обрабатывает сервис, и включите его в свои ресурсы. Если вы хотите включить службу, вместо копирования файла в ~ / Library / Services, создайте символическую ссылку в папке ~ / Library / Services, которая указывает на приложение, которое вы включили в свои ресурсы.

Таким образом, если пользователь удалит ваше приложение, все, что останется позади, это символическая ссылка, указывающая на неверное местоположение. Меньше вооружает, чем фактически оставляя приложение позади, и будет иметь дополнительное преимущество, заключающееся в том, что сервис больше не будет доступен (поскольку info.plist будет удален, когда пользователь удалил ваше приложение).

0 голосов
/ 27 ноября 2009

Один из способов - установить службу в ~ / Library / Services, которая предоставляет эти службы, и отредактировать Info.plist этого приложения из вашего основного приложения.

Конечно, это должно быть явное действие, поэтому пользователь (надеюсь) знает, что нужно удалить сервис, если он удалит ваше приложение. И вам следует документировать эту процедуру на веб-странице поддержки вашего продукта, на случай, если это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...