文档范围,用于文件包的安全范围书签

9
我正在尝试为文件包创建文档范围安全书签。也就是说,文件夹中的NSURLIsPackageKeyYES。我知道通常情况下你无法为目录创建文档范围的书签,但我本来希望文件包不受此限制(毕竟,我使用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];

调用此方法后,bookmarkbookmarkError都将变为nil

我是否需要放弃这个方法并创建应用程序范围的书签,即使我有一个基于文档的应用程序?这似乎不合适,但我没有看到其他解决方法。


我没有你问题的答案,但是有一件事情困扰了我,就是文档的fileURL在第一次保存之前是空的,所以如果你没有设置应用程序范围的授权,书签创建将会失败。 - duncanwilcox
我也遇到了这个问题。出于某种原因,它起作用了,尽管我绝对没有设置 com.apple.security.files.bookmarks.app-scope。这让我认为我已经使用文档范围的书签工作了,直到我意识到 [self fileURL] 仍然为空。 - Tom Harrington
1个回答

4
我在其他地方询问过此事,得到的答复是:

...我们没有实现它的支持,因为它很复杂,而且对此的请求非常少。

所以这就是原因,你无法创建此类书签,因为它还没有被实现。我还向苹果提交了一个错误报告,但是回复只是引用了文档(即告诉我已经知道并在报告中提到的内容),然后关闭了报告。因此,目前和可预见的未来,这是不可能的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接