iPhone:在"文档"文件夹中创建带有"do not back-up"标志的文件时遇到排序问题?



我们的应用程序根据Apple的要求设置了"不备份"标志。或者至少我们是这么认为的。最近的提交被拒绝,因为审阅者发现的文件没有设置标志。我们测试,重新测试,再次测试,发现我们所有的文件都是使用"不备份"标志创建的。嗯!

这不是我们第一个使用相同的代码库的应用程序。我们已经有许多其他人通过,甚至最近没有问题。

那么这可能是一个测序问题吗?我们正在从用作应用程序起始内容的下载包中复制一个数据库文件;然后,当用户获取更多数据时,此内容会更新。初始数据库文件可能很大 - 大到 2MB - 具体取决于应用程序。我们在"文档"文件夹中打开一个新文件,将数据库内容复制到新文件,将其关闭,然后设置"不备份"标志。

相反,我们是否应该创建一个空文件,然后立即设置"不备份"标志,然后再打开它以用捆绑包中的数据库内容覆盖空文件?

我已经问过苹果评论者这个问题,但还没有收到答案。我可以简单地尝试不同的顺序,看看在重新审查中会发生什么,但我更愿意知道我应该做什么并去做,而不是猜测问题是什么并在黑暗中拍摄。

那么有谁知道一种可靠的"Apple批准"方法,可以将捆绑包中的(数据库(文件复制到文档目录中并设置"不备份"标志?谁能阐明任何类似的拒绝以及他们为取悦审稿人做了什么?

获得风滚草徽章后(= 这是一个无聊的问题(,这里有一些信息可以回答它......

设置"不备份"标志的方式在 5.0.1 和 5.1 之间发生了变化。iOS 5.1 SDK 的发行说明在"备份"下有以下条目

iOS 5.1 引入了新的 API 来标记不应备份的文件或目录。对于 NSURL 对象,请添加 NSURLIsExcludedFromBackupKey 属性以防止备份相应的文件。对于 CFURLRef 对象,请使用相应的 kCFURLIsExcludedFromBackupKey 属性。 在 iOS 5.1 及更高版本上运行的应用必须使用较新的属性,而不是直接添加 com.apple.MobileBackup 扩展属性,如前所述。com.apple.MobileBackup 扩展属性已弃用,在将来的发行版中可能会删除对它的支持。

请注意,iCloud 是在 iOS 5.01 中引入的,此更改是在 5.1 中引入的,这意味着该应用程序必须适应设备上运行的 iOS 特定版本。我们的一位开发人员发现了以下 Gist,用于处理 iOS 5.1 之前和之后的设备。

最新更新