Ios4 在iOS模拟器和设备中完成NSFileProtection测试

Ios4 在iOS模拟器和设备中完成NSFileProtection测试,ios4,encryption,ios-simulator,ios5,Ios4,Encryption,Ios Simulator,Ios5,我在coreData应用程序中为我的-(NSPersistentStoreCoordinator*)persistentStoreCoordinator编写了此代码。我使用xCode的主细节应用程序模板创建应用程序 - (NSPersistentStoreCoordinator *)persistentStoreCoordinator { if (__persistentStoreCoordinator != nil) { return __persistentStore

我在coreData应用程序中为我的-(NSPersistentStoreCoordinator*)persistentStoreCoordinator编写了此代码。我使用xCode的主细节应用程序模板创建应用程序

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (__persistentStoreCoordinator != nil) {
        return __persistentStoreCoordinator;
    }

    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Notes2.sqlite"];

    NSError *error = nil;
    __persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {

        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }    

    NSString *urlString = [storeURL absoluteString];
    NSDictionary *fileAttributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey];
    if (![[NSFileManager defaultManager] setAttributes:fileAttributes ofItemAtPath:urlString error:&error]) 
    {
        // Handle error
    }


    return __persistentStoreCoordinator;
}
我如何测试并知道我的sqlite已启用NSFileProtectionComplete


我锁定了模拟器,但在Finder中双击该文件时,该文件仍然可读。

iTunes不会从该设备复制文件,除非它有您的密码或该设备之前已被信任;这就是它能够解密数据的方式


在Xcode 8和更早版本中,模拟器使用主机文件系统,macOS目前不支持与iOS相同的每文件加密,因此,在macOS上,您无法在模拟器中测试此功能。

我还通过锁定设备,然后使用iTunes和iTunes文件共享将文件从设备复制到我的桌面,在设备上对其进行了测试…但文件仍然可读。您能测试此功能吗?