Я написал изолированное приложение, которое имеет дело с USB-накопителями под Yosemite (10.10). Когда приложение завершено, я хочу предложить пользователю возможность извлечения устройства.Отключить устройство USB в песочнице Приложение Mavericks
Под Йосемити это еще не проблема, я успешно использовал
DADiskUnmount()
и
[NSWorkspace unmountAndEjectDeviceAtURL:error:]
Но под Mavericks (10.9) как methodes не будет работать. Я дважды проверил весь свой код, и я уверен, что конфликтов SDK нет.
Я получаю следующее сообщение об ошибке
Sandbox denied authorizing right 'system.volume.external.unmount' by client <MyApp>
Я получил все связанные с USB Entitlements, использовать безопасности в области видимости закладки (с startAccessingSecurityScopedResource и без), разрешения ремонтировали диска на испытательном устройстве, используются различные виды USB-устройств для проверки, проверки наличия открытых файлов на устройстве и попыток kDADiskUnmountOptionForce.
Разрешение
system.volume.external.(adopt|encode|mount|rename|unmount)
появляется право только на 10,8 и 10,9. источник: link
Есть ли способ предоставить мое приложение это право?
Было бы неплохо, если бы кто-то мог мне помочь!
эй! теперь я хочу отправить это в MAS ... Не могли бы вы объяснить каждую строку или дать мне ссылку на источник, где я могу прочитать эту информацию? Я хочу правильно объяснить, почему я написал это в своем файле права, чтобы он мог быть принят. – phisto05
Хм, я думаю, просто скажу правду, что он находится в файле прав Aperture и изгнании не работает под Mavericks без него. Вы пытались удалить некоторые другие линии? Как только оставьте строку «разрешить авторизацию-право-получить» для размонтирования и посмотрите, работает ли она? Вероятно, они с большей вероятностью одобрят это с меньшим разрешением. –
он работает, когда я просто оставляю разрешение-право-получать (правая-имя "system.volume.external.unmount) ... rigth теперь я жду обзора :) – phisto05