我的应用程序,截至当前,包含经过备份过程的Documents文件夹中的重要文件,以便以后可以恢复它们。这些文件由用户创建。但是,Documents目录中还有一个名为/Templates
的文件夹,我需要将其从备份中排除。这包含随应用程序下载的文件,用于帮助从基础创建新文件:模板。
因此,我的问题是:有没有办法排除Documents目录中的单个文件夹?任何解决方案和/或代码将非常感激。如果可能的话,我也希望将它保留在Documents目录中。以下是我从iTunes Connect解决方案中心收到的消息。
我们发现您的应用不遵循iOS数据存储 根据App Store审核指南要求的指南。
特别是,我们发现在发布和/或内容下载时,您的 应用商店102.71MB。要检查应用存储的数据量:
- 安装并启动您的应用
- 转到设置> iCloud>存储&备份>管理存储
- 如有必要,请点按“显示所有应用”
- 检查应用的存储空间
iOS数据存储指南表明只有内容即 用户使用您的应用创建,例如文档,新文件,编辑等, 应该由iCloud支持。
您的应用使用的临时文件应仅存储在/ tmp中 目录;请记得删除存储在此位置的文件 当用户退出应用时。
可以重新创建但必须保持正常运行的数据 您的应用 - 或者因为客户希望它可以离线使用 使用 - 应标记为“不备份”属性。对于NSURL 对象,添加NSURLIsExcludedFromBackupKey属性以防止 备份相应的文件。对于CFURLRef对象,请使用 对应的kCFURLIsExcludedFromBackupKey属性。
有关详细信息,请参阅技术问答1719:如何预防 文件从备份到iCloud和iTunes?。
有必要修改您的应用以满足iOS的要求 数据存储指南。如果你有困难再现一个 报告问题,请尝试测试技术中描述的工作流程 Q& A QA1764:如何重现针对App Store报告的错误 提交。
如果您在使用上述资源后遇到代码级问题, 您可以咨询Apple Developer Technical Support。什么时候 DTS工程师跟进你,请准备提供:
- 拒绝问题的完整详情
- 截图
- 重现问题的步骤
- 符号化崩溃日志 - 如果您的问题导致崩溃日志
答案 0 :(得分:0)
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
if (URL) {
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;
}
else
{
return YES;
}
}
您可以传递文件夹的网址,这应该可以。这就是我们如何禁用整个文档文件夹的备份。