【发布时间】:2015-06-01 10:27:16
【问题描述】:
我使用 QLPreviewView 在应用中显示 quicklook 预览。没有沙盒,这个功能很好,但是一旦将应用程序更改为沙盒,预览就无法显示。
我在控制台中发现错误:QuickLookUIHelpe(20786) deny file-read-data XXX.
我已使用 安全范围的书签 & com.apple.security.files.user-selected.read-write 来授予用户主目录的访问权限,然后:
[allowedURL startAccessingSecurityScopedResource];
self.myPreiviewItem.myURL = fileURL;
self.myQLPreviewView.previewItem = self.myPreiviewItem;
[self.myQLPreviewView refreshPreviewItem];
[allowedURL stopAccessingSecurityScopedResource];
有了这些,我可以删除用户主目录的文件,但是 QLPreviewView 不能工作。 我不知道这两个场景有什么区别,QLPreviewView 需要更多的沙盒吗?
如果我将com.apple.security.files.downloads.read-only添加到授权中,“下载”中的文件可以预览,但用户主目录的其他文件不能预览。
【问题讨论】:
-
fileURL 和 allowedURL 有什么区别?
-
allowedURL 只是表示 com.apple.security.files.user-selected.read-write 授予的目录,例如用户主目录,而 fileURL 是一个文件被预览,并且它在被授予的目录中。
标签: macos cocoa sandbox appstore-sandbox quicklook