使用NSURLIsExcludedFromBackupKey禁用文档中文件夹的备份

时间:2015-04-17 13:24:06

标签: ios objective-c iphone backup

我的应用程序,截至当前,包含经过备份过程的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工程师跟进你,请准备提供:

     
      
  • 拒绝问题的完整详情
  •   
  • 截图
  •   
  • 重现问题的步骤
  •   
  • 符号化崩溃日志 - 如果您的问题导致崩溃日志
  •   

1 个答案:

答案 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;
    }
}

您可以传递文件夹的网址,这应该可以。这就是我们如何禁用整个文档文件夹的备份。

相关问题