2016-01-27 6 views
2

В моем приложении, когда пользователь подключает устройство USB (телефон), я использую NSWorkspaceDidMountNotification, чтобы уведомить пользователя о том, что устройство обнаружено, выполнив NSAlert.Как читать с устройства массовой памяти usb, когда включен ящик AppSand

Принятое приложение приступает к копированию (чтению) содержимого текстового файла с устройства. Это работало нормально, пока я не включил AppSandbox. Я получил разрешение usb, но теперь, когда приложение пытается скопировать, я получаю следующую ошибку.

ОШИБКА ЧТЕНИЯ СОДЕРЖАНИЕ FILE: Ошибка домена = NSCocoaErrorDomain Code = 257 «Файл„Office.txt“. Не может быть открыт, потому что у вас нет разрешения на просмотр» UserInfo = {NSFilePath =/Volumes/OfficeDrive // ​​Документы/Office.txt, NSUnderlyingError = 0x600000049390 {Error Domain = NSPOSIXErrorDomain Code = 1 "Операция не допускается"}}

Можно читать с устройства USB если AppSandbox включен.

ответ

2

Вы можете только получить доступ к файлам пользователь явно предоставляет доступ, если вы песочнице:

задаваемый пользователем файлы. Изолированное приложение (с соответствующим правом) автоматически получает доступ к файлам в произвольных местах, когда эти файлы явно открываются пользователем или перетаскиваются на приложение пользователем.

(App Sandbox Design Guide)

Таким образом, вы должны были бы открыть диалоговое окно файла (возможно, уже указывает на место, которые вы выяснял с уведомлением) и есть пользователь забрать его для того, чтобы получить доступ.

отдаленное отношение SO сообщение: