iOS 5.0.1:如何validation文件夹被标记为“不备份”iCloud?
我想设置Do not back up
到Document Directory
中的Document Directory
夹。
我发现了“不要备份”的代码,但是如何validation该文件夹是否已被标记。
根据您链接的文档,如果您在该页面上设置方法的确切方式,则该方法将返回YES
如果该属性标记正确)。
对于iOS 5.1,在模拟器中运行应用程序,然后在terminal中运行以下命令:
xattr {filename}
如果项目被正确标记为排除,则应该看到以下内容:
com.apple.metadata:com_apple_backup_excludeItem
- 打开模拟器
- 删除应用程序(应用程序审查团队运行代码1次,所以要确保你是从头开始)
- 现在在模拟器中运行你的代码,你的代码将把你的文件存储在你的硬盘上。
- 开放terminal
- cd / Users /(用户名)/ Library / Application Support / iPhone Simulator /(ios版本)/ Applications
- LS
- 您将看到随机文件夹名称列表,打开每个文件夹名称直到find您的应用程序文件夹
- for $(find *); 做du -sk $文件; xattr -l $文件; 回声 DONE
- 您将以应用程序的格式显示所有文件
(文件大小)(文件名)
(iCloud备份排除)
注意:如果没有列出,这意味着该文件将被备份(如果它在库或文件夹中)..如果你看到'com.apple.metadata:com_apple_backup_excludeItem:com.apple.MobileBackup',那么你是很好去。
在模拟器中运行应用程序,然后使用terminal对相关文件运行此命令:
xattr -plxv com.apple.MobileBackup <file name>
对于iOS 5.1或更高版本,此代码适合我。
- (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; }