Ios 如何将特定于应用程序的数据写入设备';s仅具有应用程序访问权限的文件存储
我想将数据写入设备在给定文件夹中的文件存储,这样,浏览文件存储的设备所有者或设备上的任何其他应用程序都无法访问该文件夹中的文件,也无法将其作为iCloud或任何其他此类服务的一部分进行备份 下面的代码正确吗?具体来说,带有“用户域”掩码的“应用程序支持”目录是否是保存这些文件的正确位置?我是否需要对单个文件设置特定权限以保证其有限的可见性?我是否需要单独指定要从备份服务中排除的每个文件Ios 如何将特定于应用程序的数据写入设备';s仅具有应用程序访问权限的文件存储,ios,icloud,file-permissions,nsfilemanager,Ios,Icloud,File Permissions,Nsfilemanager,我想将数据写入设备在给定文件夹中的文件存储,这样,浏览文件存储的设备所有者或设备上的任何其他应用程序都无法访问该文件夹中的文件,也无法将其作为iCloud或任何其他此类服务的一部分进行备份 下面的代码正确吗?具体来说,带有“用户域”掩码的“应用程序支持”目录是否是保存这些文件的正确位置?我是否需要对单个文件设置特定权限以保证其有限的可见性?我是否需要单独指定要从备份服务中排除的每个文件 NSString* bundleIdentifier = [[NSBundle mainBundle] bun
NSString* bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *urls = [fileManager URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
NSURL *url = [urls objectAtIndex:0];
url = [url URLByAppendingPathComponent:bundleIdentifier];
url = [url URLByAppendingPathComponent:@"MyFolder"];
if (![url checkResourceIsReachableAndReturnError:nil]) {
[fileManager createDirectoryAtURL:url
withIntermediateDirectories:YES
attributes:nil
error:nil];
[url setResourceValue:[NSNumber numberWithBool: YES]
forKey:NSURLIsExcludedFromBackupKey
error:nil];
}
url = [url URLByAppendingPathComponent:@"MyFile.txt"];
[@"MyString" writeToURL:url
atomically:YES
encoding:NSUTF8StringEncoding
error:nil];
只需在应用程序中启用数据保护功能即可。数据保护通过使用密码保护硬件加密密钥来增强内置硬件加密。这为您的电子邮件、附件和第三方应用程序提供了额外的保护层 您可以通过在您的配置文件中启用
数据保护来加密完整的应用程序数据,或按文件加密,如下所示
[[NSFileManager defaultManager] createFileAtPath:[self filePath]
contents:[@"super secret file contents"
dataUsingEncoding:NSUTF8StringEncoding]
attributes:[NSDictionary dictionaryWithObject:NSFileProtectionComplete
forKey:NSFileProtectionKey]];
据我所知,NSFileProtectionComplete
仅适用于设备设置了密码的情况。。。对吗?如果是这样,则这不是一个保证受保护存储的解决方案。iReddy,请参阅此处的问题: