【问题标题】:how to create a directory in /Library/Application Support如何在 /Library/Application Support 中创建目录
【发布时间】:2013-07-31 22:55:49
【问题描述】:

当我尝试在 /Library/Application Support/ 中创建目录“我的应用名称”时遇到权限被拒绝错误

//@"/Library/Application Support/My App Name/"
NSString *path = [[NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSLocalDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"My App Name"];
if(![[NSFileManager defaultManager] createDirectoryAtPath:path withIntermediateDirectories:YES attributes:NULL error:&error]){
    NSLog(@"%@", error);
}

我不需要对我的应用程序进行沙箱处理,但我了解到沙箱处理和添加特殊权利可以解决此问题。

我尝试将例外添加到权利文件中,但没有成功

<key>com.apple.security.temporary-exception.files.absolute-path.read-write</key>
<array>
    <string>/Library</string>
    <string>/Library/Application Support/</string>
</array>

有什么想法吗?

编辑: 我还应该注意,我希望保存一个由所有用户共享的文件。我不希望每个用户都有不同版本的文件。

【问题讨论】:

标签: objective-c cocoa


【解决方案1】:

沙盒不会覆盖文件系统权限 - 它缩小而不是扩大访问权限! /Library 不是用户可写的。您应该使用~/Library/Application Support(通过API而不是通过硬编码路径定位)。

【讨论】:

  • 我希望所有用户共享同一个文件。
  • 如果您需要在/Library/Application Support 中创建一个目录供您的应用程序使用,那么您需要进行权限提升。当应用程序请求允许做某事时会发生这种情况,通常是在它第一次运行以进行设置时。阅读 Apple 的 Elevating Privileges Safely 是一个起点。您声明您不需要沙箱,因此这可能不适用,但以防万一:App Store 中的应用程序无法使用权限提升。
猜你喜欢
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 1970-01-01
  • 2014-11-11
  • 2013-06-01
  • 2016-01-14
相关资源
最近更新 更多