Я написал приложение для песочницы, которое работает с USB-накопителями в Yosemite (10.10). Когда приложение закончит работу, я хочу предложить пользователю возможность извлечь устройство.
Под Yosemite это не проблема, я успешно использовал
DADiskUnmount()
и
[NSWorkspace unmountAndEjectDeviceAtURL:error:]
Но в Mavericks (10.9) оба метода не будут работать. Я дважды проверил весь свой код и почти уверен, что конфликтов SDK нет.
Я получаю следующее сообщение об ошибке
Sandbox denied authorizing right 'system.volume.external.unmount' by client <MyApp>
Я получил все права, связанные с USB, использовал закладки в области безопасности (с startAccessingSecurityScopedResource и без), восстановил права доступа к диску на тестовом устройстве, использовал различные типы USB-устройств для тестирования, проверил, есть ли на устройстве открытые файлы, и попробовал kDADiskUnmountOptionForce.
system.volume.external.(adopt|encode|mount|rename|unmount)
право авторизации появляется только на 10.8 и 10.9. источник: ссылка
Есть ли способ предоставить моему приложению это право?
Было бы неплохо, если бы кто-нибудь помог мне с этим!