阅读背景:

iOS怎么防止文件被Icloud或者iTunes备份

来源:互联网 

最近上传App被苹果拒了,原因很普遍,因为把不该同步到iCloud的东西同步了,简言之:我把下载的视频放在沙盒下的Documents目录下.其实之前是知道错了,真是明知山有虎偏向虎山行.自找的.人品不好悲剧.但是我又有不得已的原因,原因不说了.说下怎么处理.

首先现在一般都是7.0后的系统.所以太低就不说了.

下面方法适用于5.1及更高版本系统


可以用NSURLIsExcludedFromBackupKey or kCFURLIsExcludedFromBackupKey 这两个文件系统属性把文件从备份文件中排除,意思就是针对你不需要备份的文件,设置这两个属性任意一个,那么以后iCloud或者Itunes备份的时候就不会把他们也备份上去.苹果开发文档也说明了不允许用户把一些可以从网络下载的文件放入沙盒下的Documents目录下.但是你又有不可不放进去的原因.就只能这样了.具体代码如下


- (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *) filePathString{
NSURL* URL= [NSURL fileURLWithPath: filePathString];
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);

NSError *error = nil;
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
return success;
}

上面是截取的苹果文档中的代码,可以看一下.filePathString是你要防止备份的文件的路径

如果你有大量文件需要排除掉,不要傻傻的一个一个的调用这个方法,把所有文件放到一个文件夹下,排除这个文件夹就好.网上一兄弟就是一个个调用他了,还是被拒了,我也不清楚为什么,我这种放在Documents下面文件夹中排除的方法,我也不知是否可以通过审核,如果通过了会及时更新的.如果谁已经做到了请告知一声,万分感谢.



分享到: