【发布时间】:2012-08-30 01:50:14
【问题描述】:
我需要我的沙盒应用在应用重新启动后重新打开打开的文件。 Apple 在 NSURL 书签创建和解析方法中为安全范围的书签提供了 NSURLBookmarkCreationWithSecurityScope 和 NSURLBookmarkResolutionWithSecurityScope 选项。但是,这些标志/选项仅适用于 10.7.3 或更高版本,并导致 10.7.3 之前的应用程序失败。
如何在沙盒应用中处理 10.6 到 10.7.3 的文件书签的保留/重新打开?
--
跟进:请在下面查看我的回答。该问题不是由使用 NSURLBookmarkCreationWithSecurityScope 引起的,而是由使用安全范围的书签启动和停止方法引起的。
【问题讨论】:
-
我猜你可能做不到。这是他们的沙盒方法的一个缺点,因此添加了额外的机制。而且苹果不是一个向后移植的东西......
-
你确定这是失败的原因吗?我有一个使用
[NSURL URLByResolvingBookmarkData:bookmark options:NSURLBookmarkResolutionWithSecurityScope relativeToURL:nil bookmarkDataIsStale:NO error:nil];的应用程序(在 MAS 中),它在 10.6.8 机器上运行良好。 -
@Patrick - 它在 10.7 - 10.7.2 上工作正常吗? (沙盒在 10.6.8 上无法运行,URL 的解析可能会忽略 10.7.3+ 添加的任何安全信息 - 只是猜测)
-
嗯,我应该更彻底地检查 Console.app。我在 10.7.1 上测试时收到以下错误消息:
-[NSURL startAccessingSecurityScopedResource]: unrecognized selector sent to instance 0x10420e180这是否意味着我需要使用 OS X 10.7.3 或更高版本检查来包装启动/停止方法?
标签: macos cocoa app-store sandbox bookmarks