【问题标题】:Document-scope, Security scoped bookmarks for file packages文件包的文档范围、安全范围书签
【发布时间】:2013-08-14 02:01:41
【问题描述】:

我正在尝试为文件包创建文档范围安全范围的书签。即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 在第一次保存之前为零,所以如果你没有设置应用程序范围的权利,书签创建会失败。
  • 我也遇到了。出于某种原因,它起作用了,即使我绝对没有设置com.apple.security.files.bookmarks.app-scope。这让我认为我可以使用文档范围的书签,直到我意识到 [self fileURL] 仍然为零。

标签: macos cocoa sandbox appstore-sandbox


【解决方案1】:

我在其他地方问过这个问题,并被告知:

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

就是这样,您不能创建这种书签,因为它没有实现。我还向 Apple 提交了一个错误,但回复只是在关闭它之前引用了我的文档(即告诉我我已经知道并在我的报告中提到的东西)。因此,就目前而言,可能在可预见的未来,这是不可能的。

【讨论】:

    猜你喜欢
    • 2016-12-27
    • 1970-01-01
    • 2017-01-06
    • 2017-01-27
    • 1970-01-01
    • 2018-07-13
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多