【发布时间】:2013-08-14 02:01:41
【问题描述】:
我正在尝试为文件包创建文档范围安全范围的书签。即NSURLIsPackageKey 为YES 的目录。我知道您通常不应该能够为目录创建文档范围的书签,但我希望包可以免除(毕竟,我可以使用不允许的 NSOpenPanel 访问它们选择目录,但那里没有问题)。
我已经使用com.apple.security.files.bookmarks.document-scope = true 设置了我的权利,并且我正在使用我刚刚从NSOpenPanel 收到的文件 URL 进行基本的书签创建调用(所以我可以访问):
NSError *bookmarkError = nil;
NSData *bookmark = [fileURL
bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope
includingResourceValuesForKeys:nil
relativeToURL:[self fileURL]
error:&bookmarkError];
不过,在此调用之后,bookmark 和 bookmarkError 都是 nil。
即使我有一个基于文档的应用程序,我是否只需要放弃这个并创建应用程序范围的书签?这似乎不合适,但我没有看到其他解决方法。
【问题讨论】:
-
我没有你的问题的答案,但让我感到困扰的是文档的 fileURL 在第一次保存之前为零,所以如果你没有设置应用程序范围的权利,书签创建会失败。
-
我也遇到了。出于某种原因,它起作用了,即使我绝对没有设置
com.apple.security.files.bookmarks.app-scope。这让我认为我可以使用文档范围的书签,直到我意识到[self fileURL]仍然为零。
标签: macos cocoa sandbox appstore-sandbox