防止在iOS中备份文件

时间:2012-02-16 19:02:46

标签: iphone ios

我有一个被拒绝的应用程序,因为我从互联网上下载了一些图像,App Store评论员说这些不应该备份(我非常不同意,但我能做些什么)。

因此,我将所有这些文件放在/ Documents下的目录中,并且我将do not backup属性添加到子目录中的文件中(但是忘记在子目录本身上执行此操作)。

当我重新提交我的应用程序时,该应用程序再次被拒绝,因为审核人员说我仍然使用了太多空间,而且我得到的印象是我的备份属性不受尊重。

我想我可能知道这个问题,但我希望在再次为我的应用程序重新提交过程之前得到确认。

现在,我的目录结构如下:

Documents/
    subdir.derived/
        <a bunch of files>

我在文件中放了do not backup属性,但在“subdir.derived”上没有。

当我重新阅读Apple的文档时,我想知道不备份属性是仅在“Documents /”目录的顶层,而不是在子目录中的文件。

有人能证实这是真的吗?如果我将“不备份”属性添加到“subdir.derived”中,那会解决我的问题吗?

谢谢, 罗恩

3 个答案:

答案 0 :(得分:3)

我会使用Library / Caches目录来下载图像。这就是它存在的原因,它不会自动备份,因此审稿人不会抱怨它。它还有一个方便的快捷方式:NSCachesDirectory。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cacheDir = [paths objectAtIndex:0];

答案 1 :(得分:3)

当我们收到类似的拒绝备注时,我们将所有缓存文件从~/Documents移至~/Library/PrivateDocuments,并在PrivateDocuments目录中设置do-not-backup标志。这足以让App Store评论员满意。

为什么不~/Library/Caches?虽然文件技术上是一个缓存,但我们的用户可以在离线时访问它们。由于操作系统可能会在没有通知的情况下清除~/Library/Caches,因此我们的用户可能会意外地发现他们懒得下载以供离线访问的内容已经消失。

顺便说一下,App Store评论员明确建议了目录名PrivateDocuments

答案 2 :(得分:0)

您应该将应用程序的临时目录用于可以以其他方式重新创建的缓存文件。临时目录不会备份,可能会被iOS删除,因为它认为合适。