MacOS: используйте getxattr / setxattr из расширения синхронизации Finder - PullRequest
0 голосов
/ 28 апреля 2018

Я хочу использовать setxattr / getxattr из расширения Finder Sync на OSX 10.12.6, но вызовы не выполняются с errno == 1, который является EPERM. Расширения синхронизации Finder запускаются в песочнице, поэтому я думаю, мне нужно запросить разрешения. Никакого количества поиска в Google и просмотра документации пока не обнаружено. Файлы, к которым я хочу получить доступ, принадлежат мне, и установка атрибутов с помощью утилиты командной строки xattr завершается успешно и дает ожидаемый результат.

Таким образом, вопрос заключается в следующем: какие разрешения / разрешения мне нужно предоставить для песочницы, или это вообще возможно?

Я хочу сохранить состояние синхронизации в расширенных атрибутах (очистить, изменить, синхронизировать) и выбрать правильный значок для requestBadgeIdentifierForURL на основании этого. Процесс без песочницы с более низким приоритетом обрабатывает файлы и обновляет атрибуты.

Альтернативой может быть использование отдельной базы данных для хранения состояния синхронизации, и я собираюсь использовать это, если xattr не сработает.

Редактировать: Добавлен файл прав

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.temporary-exception.files.absolute-path.read-write</key>
    <true/>
    <key>com.apple.security.temporary-exception.files.home-relative-path.read-write</key>
    <true/>
    <key>com.apple.security.files.downloads.read-write</key>
    <true/>
    <key>com.apple.security.files.user-selected.read-write</key>
    <true/>
</dict>
</plist>

Исходный файл разрешений, который поставляется с образцом, просто

<key>com.apple.security.files.user-selected.read-only</key>

который тоже не работал.

Я добавил тестовый проект в GitHub https://github.com/JensRestemeier/SyncExtensionTest

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