1 审核被拒
2 被拒原因
大概意思是app在下载后,在iCloud需要备份的体积变大了。
根据iOS Data Storage Guidelines 说明,得出几点重要信息
只有用户创建的,并且不能被App重现的文档、数据,才应该被保存在“/Documents”路径下。
可以重新产生、下载的数据可以放在“/Library/Caches”目录下,如用于缓存的数据库文件。
纯粹用于缓存的数据可以放在“/tmp”目录下
可以通过对NSURL加参数,来保证特定的文件夹及其内容不被iCloud备份,也不会被清除,如Document文件
苹果的审核人员认为这些文件不应该备份
真正应该备份的数据:
真正需要备份的文件是用户创建的,不能通过程序重新产生的,如记事本应用中用户创建的文本数据,绘画应用中用户画的画等
3 解决方法
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
[self addSkipBackupAttributeToItemAtURL:[NSURL fileURLWithPath:documentsDirectory]];
return YES;
}
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
NSError *error = nil;
NSLog(@"addSkipBackupAttributeToItemAtURL");
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
return success;
}
官网解决方案:
https://developer.apple.com/library/ios/qa/qa1719/_index.html
特点:
- /Documents根目录也可以通过上面的函数设置成不备份。(如应用AVPlayer)
- 设置是递归的,所以其所有子目录和文件都不用再设置一次,都会自动不被备份
(亲测有效,app第二天通过了)