Могу ли я хранить заставку в моем комплекте приложений?

У меня есть приложение для Mac, которое можно использовать как заставку (незначительная функциональность, но мне нравится!). Я не хочу распространять отдельно само приложение (средство просмотра фракталов) и скринсейвер, поэтому я хочу поместить скринсейвер в пакет приложения.

Вопросы: могу ли я это сделать и ожидать, что это сработает? Нужно ли как-то "прописывать" скринсейвер (с помощью какого API?), или он автоматически подхватится системой?


person F'x    schedule 22.11.2010    source источник


Ответы (3)


Я не думаю, что хост экранной заставки OSX подтвердит ваш пакет .saver, если только он не находится в одном из каталогов Library/Screen Savers. Таким образом, вы не можете просто распространять приложение и ожидать, что заставка будет работать без дальнейшего вмешательства.

Конечно, вы по-прежнему можете распространять их как единый пакет, но вам понадобится какой-то способ скопировать или создать символическую ссылку на .saver в нужном месте из любого места, где он находится внутри вашего приложения. Например, вы можете предложить пользователю эту опцию при первом запуске вашего приложения, или вы можете добавить пункт меню «Установить заставку» или что-то еще.

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

person walkytalky    schedule 22.11.2010

Вы можете сделать это без вмешательства пользователя. При запуске вашего приложения вы можете скопировать .saver из пакета в каталог «~/Library/Screen Savers». В следующий раз, когда вы запустите Системные настройки и перейдете к настройкам заставки, вы должны увидеть свою заставку в списке со встроенными заставками.

Имейте в виду, что если пользователь не ожидает, что вы устанавливаете заставку, он может разозлиться.

person Ray    schedule 13.10.2011
comment
И копирование в ~/Library/Screen Savers запрещено правилами Mac App Store… - person F'x; 13.10.2011

Так что, видимо, никак не обойти это.

person F'x    schedule 27.11.2010