【发布时间】:2013-08-01 06:07:14
【问题描述】:
我们最近在审核过程中因以下问题被拒绝:
===========
2.23
我们仍然发现您的应用没有遵循 iOS 数据存储 指南,这是 App Store 审核指南所要求的。
特别是,我们发现在发布和/或内容下载时,您的 应用程序将非用户生成的内容存储在 iCloud 备份目录中, 这是不合适的。要检查您的应用存储了多少数据:
- 安装并启动您的应用
- 转到设置> iCloud > 存储和备份> 管理存储
- 如有必要,请点按“显示所有应用”
- 检查应用的存储空间
iOS 数据存储指南指出,只有 用户使用您的应用创建,例如文档、新文件、编辑等, 应由 iCloud 备份。
您的应用使用的临时文件应仅存储在 /tmp 目录;请记住删除存储在此位置的文件 当用户退出应用时。
可以重新创建但必须保留才能正常运行的数据 您的应用 - 或者因为客户希望它可以离线使用 使用 - 应标有“不备份”属性。对于 NSURL 对象,添加 NSURLIsExcludedFromBackupKey 属性以防止 相应的文件被备份。对于 CFURLRef 对象,使用 对应的 kCFURLIsExcludedFromBackupKey 属性。
===========
我们的(仅限 iOS 6)应用包含用户收藏的汽车。
我们希望在此集合中预先填充一系列经典汽车,他们可以在应用中随意删除或编辑这些汽车。整个汽车数据库,包括用户创建的和预加载的条目,都应该备份到 iCloud。
目前,每辆汽车,无论是由用户创建还是由初始集合之一创建,都存储在 /Library/Application Support/com.company.appname/DataModel.sqlite 中,据我所知,它已备份到 iCloud。汽车条目有一个图像文件,该文件与 sqlite 数据库文件保存在同一目录中。
然后使用 fetchedresultscontroller 和标准核心数据代码在 tableview 中显示汽车。
这里是一些相关文档。
https://developer.apple.com/icloud/documentation/data-storage/
通读这些内容后,如果我们有一个需要备份但必须以预加载的、用户可修改/可删除的项目开头的数据库,如何遵守这些指南仍不清楚?
【问题讨论】: