суббота, 19 января 2013 г.

Sandbox для mac приложений

Все хорошее когда то заканчивается...

При очередном обновлении приложения в MAS, было получено в отказе на публикацию. Требования для полноценных обновлений стали весьма просты, программа должна полностью работать в песочнице. Пройдет только апдейт с исправлением баги. Цели компании Apple полностью весьма прозаичны - контролировать инфраструктуру приложений сторонних разработчиков. Такие вещи как Gatekeeper и Sandbox помогают увеличить безопасность и надежность для конечных пользователей. Особенного накала разработчиков именно от такого введения в MAS нету. Изначально было ограничение на запуск программ в root mode. Поэтому в магазин валом пошли игры и утилиты казуального характера. Опыт в сфере мобильных технологий логично переходит в сторону десктопов.

Более или менее песочница нормально стала работать начиная с 10.7.3+. Появились интерфейсы для  сохранения и доступа к ранее открытым ресурсам (Security-Scoped Bookmarks). Этот механизм актуален для программ на подобии вьюверов файлов или редакторов. Если у вас программа представляет из себя игрушку или клиент в web-service, это не настолько актуально.

Два аспекта на которых бы хотелось остановится. Безопасные ссылки на ресурсы и установка приложения в список автоматически запускаемых при входе в операционную систему.

Работы с безопасными ссылками достаточно проста. Первое что надо понять, только пользователь может инициировать создание такой ссылки через диалог выбора файла, директории или с помощью drag&drop операции. Пользователь выбирает файл-директорию на жестком диске. Мы получаем ссылку на этот файл-директорию и по ней создаем некий объект, который мы в дальнейшем можем использовать без нужды последующего открытия диалогов. Разумеется все entitlements должны быть проставлены в настройках проекта.

com.apple.security.files.bookmarks.app-scope
com.apple.security.files.bookmarks.document-scope
com.apple.security.files.user-selected.read-write.
com.apple.security.files.user-selected.read-only

Немного кода пошарил на гитхабе. Частично то как можно работать с букмарками. сохранять загружать и создавать.

https://github.com/osx84/SandboxBookmark

Самое главное приложение должно быть подписано сертификатом для MAS. Иначе все будет работать криво и большое количество подозрительных падений в неожиданных местах  вам обеспечено.

Комментариев нет: