如何在沙盒Mac应用程序中跟踪用户批准的访问路径?

时间:2013-09-30 01:28:55

标签: objective-c macos cocoa sandbox osx-gatekeeper

如何判断用户已授予哪些路径访问权限?我知道,使用NSOpenPanel,沙箱会自动扩展,以允许访问用户选择的目录。这些信息是否存储在任何地方,以便我知道是否需要抛出NSOpenPanel?

或者我是否需要在NSUserDefaults中本地跟踪它?

2 个答案:

答案 0 :(得分:2)

您有责任使用安全书签存储已授予的路径,阅读NSURL文档。

如果您需要访问路径,请检查您是否拥有安全书签(例如存储在NSUserDefaults内),如果您已重复使用,否则显示打开的面板

答案 1 :(得分:1)

如果您需要知道应用的当前执行是否可以访问特定路径,您可以调用access - 请参阅unix手册页第2节。您可以测试读取,写入和执行访问权限,以及结果反映了当前的沙箱。

如果您希望保留应用程序执行之间的访问权限,则需要创建安全范围书签并将其存储在用户默认值或其他文件中。