0

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

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

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

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

我已经向 Apple 审阅者询问了这个问题,但尚未收到答复。我可以简单地尝试不同的顺序,看看在重新审查中会发生什么,但我更愿意知道我应该做什么并去做,而不是猜测问题是什么并在黑暗中拍摄。

那么有没有人知道一种可靠的“Apple 批准”方式将(数据库)文件从捆绑包中复制到 Documents 目录中并设置“不备份”标志?任何人都可以阐明任何类似的拒绝以及他们为取悦审稿人所做的事情吗?

4

1 回答 1

0

获得 Tumbleweed 徽章(=这是一个无聊的问题)这里有一些信息可以回答它......

设置“不备份”标志的方式在 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 特定版本。我们的一位开发人员发现了以下关于处理 iOS 5.1 之前和之后的 设备的代码的 Gist。

于 2012-05-31T20:39:25.420 回答