【发布时间】:2015-09-12 00:14:13
【问题描述】:
我在 Yosemite (10.10) 下编写了一个处理 USB 驱动器的沙盒应用程序。 当应用程序完成其内容后,我想为用户提供弹出设备的选项。
在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 上。来源:link
有没有办法授予我的应用此权限?
如果有人可以帮助我,那就太好了!
【问题讨论】:
标签: objective-c cocoa usb osx-mavericks appstore-sandbox