如何在NSDocumentsDirectory中隐藏文件夹并禁止通过iTunes和iCloud进行备份
我在NSDocumentDirectory中创建私人文件夹,我想在iTunes中隐藏它并禁止备份。
在这个问题中如何隐藏在ios中的文档目录中创建的文件夹? 人们建议保存在私人目录中。
但根据苹果文档,这不是好事https://developer.apple.com/library/mac/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html
Application_Home / Library /您不应将此目录用于用户数据文件。
在iTunes11之前,这个解决方案对我有用
我可以为iCloud的“文档目录”添加“不备份”
但现在我在iTunes中看到包含私人文档的文件夹。
有人能帮助我吗?
要从iTunes文件共享中隐藏您的应用程序,您可以在info.plist中将以下键设置为No
。
应用程序支持iTunes文件共享
或者,在您的文件名/目录前面添加一个带有的Documents目录.
隐藏它而不禁用iTunes文件共享。 例如.folderName
。
使用此选项来阻止iCloud备份,从防止备份到iCloud,是否遵循正确的代码?
- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString { NSURL *fileURL = [NSURL fileURLWithPath:filePathString]; assert([[NSFileManager defaultManager] fileExistsAtPath: [fileURL path]]); NSError *error = nil; BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error]; return success; }
并且要在设备锁定时阻止来自XCode Organizer的应用备份,请使用此代码段
//************************************************************************ // Method for making files and folders secure //************************************************************************ + (void)makeItemAtPathSecure:(NSString *)path { NSError *securingFilesError; NSFileManager *manager=[NSFileManager defaultManager]; NSDictionary *attrs = [manager attributesOfItemAtPath:path error:&securingFilesError]; if(![[attrs objectForKey:NSFileProtectionKey] isEqual:NSFileProtectionComplete]) { if(![manager setAttributes:[NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey] ofItemAtPath:path error:&securingFilesError]) { NSLog(@"Problem in securing files: %@",[securingFilesError localizedDescription]); } } else { NSLog(@"Problem in securing files: %@",[securingFilesError localizedDescription]); } }
要有选择地隐藏iTunes中的文件夹,请尝试使用a重命名文件夹。 在它之前,像folderName应该是.folderName