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

Macos 文档范围,文件包的安全范围书签,macos,cocoa,sandbox,appstore-sandbox,Macos,Cocoa,Sandbox,Appstore Sandbox,我正在尝试为文件包创建文档范围安全范围的书签。即,NSURLIsPackageKey为YES的目录。我知道您通常不应该能够为目录创建文档范围书签,但我希望包不受此限制(毕竟,我可以使用NSOpenPanel访问它们,它不允许选择目录,但没有问题) 我已经用com.apple.security.files.bookmarks.document scope=true设置了我的权限,我正在使用刚从NSOpenPanel收到的文件URL进行基本的书签创建调用(因此我可以访问): 但是在这次调用之后,bo

我正在尝试为文件包创建文档范围安全范围的书签。即,
NSURLIsPackageKey
YES
的目录。我知道您通常不应该能够为目录创建文档范围书签,但我希望包不受此限制(毕竟,我可以使用
NSOpenPanel
访问它们,它不允许选择目录,但没有问题)

我已经用
com.apple.security.files.bookmarks.document scope
=
true
设置了我的权限,我正在使用刚从
NSOpenPanel
收到的文件URL进行基本的书签创建调用(因此我可以访问):

但是在这次调用之后,
bookmark
bookmarkererror
都是
nil


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

我在其他地方问过这个问题,他们告诉我:

…我们没有实施对它的支持,因为它很复杂,而且请求很少


因此,您不能创建这种书签,因为它没有实现。我也向苹果公司提交了一个bug,但回复只是引用了我的文档(即告诉我我已经知道并在报告中提到的东西),然后才结束。因此,从现在起,可能在可预见的未来,这是不可能的。

我对你的问题没有答案,但让我感到困惑的是,文档的fileURL在首次保存之前为零,因此如果你没有设置应用程序范围权限,书签创建将失败。我也遇到了这个问题。出于某种原因,它起作用了,尽管我肯定没有设置
com.apple.security.files.bookmarks.appscope
。这让我觉得我的文档范围的书签是有效的,直到我意识到
[self-fileURL]
仍然是零。
NSError *bookmarkError = nil;
NSData *bookmark = [fileURL 
    bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope
    includingResourceValuesForKeys:nil
    relativeToURL:[self fileURL]
    error:&bookmarkError];