如何将数据保护类权利添加到iOS 5应用程序中?



我一直在网上,包括苹果的开发网站,但我找不到任何指令如何设置一个应用程序的/文档目录属性NSFileProtectionKey = NSFileProtectionComplete。我已经在应用程序第一次运行时设置了值,但有办法设置它吗?比如通过X-Code复选框,列表或其他。

还有一个相关的注意事项:在数据保护类为NSFileProtectionComplete的目录下存储的任何文件是否自动被视为与其目录相同的保护类?

Thanks a bunch,

Fissh

要保护应用程序文档目录中的文件,无需任何代码,您必须添加权限。链接到您的应用程序

在你的权利。添加"DataProtectionClass"键,值为"NSFileProtectionComplete"。只要设备处于锁定状态,您的文件就会自动受到保护。

下面是一个例子

<?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  <plist version="1.0">
    <dict>
      <key>DataProtectionClass</key>
      <string>NSFileProtectionComplete</string>
    </dict>
  </plist>

WWDC session 208轻松地解决了这个问题,我认为您可以使用该密钥创建一个权利文件,并且不需要编写代码。

我还没有这样做,所以我不完全确定它是否有效

这是我想出的破解方法,直到我弄清楚如何正确设置/Documents目录保护。

NSError *error;
NSDictionary *attrs = [self attributesOfItemAtPath:DOCUMENTS_FOLDER error:&error];
if(![[attrs objectForKey:NSFileProtectionKey] isEqual:NSFileProtectionComplete])
{
    attrs = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey];
    BOOL success = [self setAttributes:attrs ofItemAtPath:DOCUMENTS_FOLDER error:&error];
    if (!success) 
        NSLog(@"Set ~/Documents attr NOT successfull");
}

我只是在加载应用程序时调用上面的代码来设置文档目录保护,如果它还没有设置的话。

Fissh

http://devforums.apple.com/message/627887开发者论坛:Apply DataProtectionClass Entitlement

我发现了这个链接,这个entitlement方法目前不工作,并提交了bug问题,所以我们必须一个文件一个文件地做。

相关内容

  • 没有找到相关文章

最新更新