gpt4 book ai didi

macos - 无法获取文件的应用范围书签 - OS X 沙箱

转载 作者:行者123 更新时间:2023-12-04 02:10:16 31 4
gpt4 key购买 nike

我一直在搜索网络和 Apple 的帮助,以寻求有关此方面的某种指导,但结果不尽如人意。我想知道是否有人遇到过类似的情况,或者可能对正在(或没有)发生的事情有一些了解。

我正在尝试获取一个应用程序范围的书签,以便应用程序在以后的 session 中调用一个文件。我可以确认路径本身在被用户选择后正确添加到沙箱中,因为我可以在 session 期间打开(并重新打开)它被选中。

但是,尝试获取安全范围的书签以稍后访问它是行不通的。

这是我在做什么:

NSURL *url = [[NSURL alloc] initFileURLWithPath:path];
NSError *error = nil;
NSData *bookmarkData = [url
bookmarkDataWithOptions:(1UL << 11) //NSURLBookmarkCreationWithSecurityScope
includingResourceValuesForKeys:nil
relativeToURL:nil
error:&error];
[url release];

我用 url 都试过了从字符串 path 生成以及仅使用例如 NSSavePanel 的 URL 的结果对其进行测试. (出于遗留原因,字符串 path 是我希望能够使用的字符串。)

我必须使用 bookmarkDataWithOptions 的值而不是常量,因为由于其他一些遗留代码的原因,我被迫使用 10.6 SDK 进行编译,其中 NSURLBookmarkCreationWithSecurityScope不可用。

我可以确认路径指向相关文件为“/Users/me/Documents/document.ext”,并且 NSURL似乎正确初始化(或至少反射(reflect)了相同的路径)。

该应用程序包括权利 com.apple.security.files.bookmarks.app-scope .

无论如何,这行不通。该代码导致 bookmarkData 0x0 和 error 0x0,控制台显示: ScopedBookmarkAgent: Failed to retrieve app-scope key, aborting.
如果我改变 relativeToURL成为 url而不是 nil并将权限更改为 com.apple.security.files.bookmarks.document-scope ,那么它似乎可以正常工作——即 bookmarkData至少获得一个非零值并且没有记录错误。但我很确定这不是我想要的(即文档范围的书签)。

有什么明显的我做错了吗?

最佳答案

让我永远感到耻辱的是,这是我的错。

以某种方式将项目移动到不同的机器进行测试和调试时,开发版本的代码签名被关闭。

显然,这会导致事情(几乎)无声地失败,没有错误代码,控制台中只有一条神秘的消息,并且没有其他迹象表明其他任何事情都不能正常工作。

留在这里以防其他人错误地做同样的事情。

关于macos - 无法获取文件的应用范围书签 - OS X 沙箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13392077/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com