在我的应用中,当用户连接USB设备(手机)时,我使用NSWorkspaceDidMountNotification
通过执行NSAlert
通知用户设备已被检测到。
如果接受,app继续从设备复制(读取)文本文件内容。这工作正常,直到我启用AppSandbox。 我已启用usb授权,但现在当应用程序尝试复制时,我收到以下错误。
错误读取文件内容:错误域= NSCocoaErrorDomain代码= 257"无法打开文件“Office.txt”,因为您无权查看它。" UserInfo = {NSFilePath = / Volumes / OfficeDrive // documents / Office.txt,NSUnderlyingError = 0x600000049390 {Error Domain = NSPOSIXErrorDomain Code = 1"操作不被允许"}}
如果启用了AppSandbox,是否可以从USB设备读取。
答案 0 :(得分:2)
如果您使用沙盒,则只能访问用户明确授予访问权限的文件:
用户指定的文件 。当用户显式打开这些文件或由用户拖放到应用程序上时,沙盒应用程序(具有适当的权利)会自动获取对任意位置文件的访问权。
所以你必须打开一个文件对话框(可能已经指向你从通知中找到的位置)并让用户选择它以获得访问权。
远程相关的SO帖子: