我们的应用程序因Apple的这一迹象而被拒绝:
“请确认只有用户使用您的应用创建的内容,例如文档,新文件,编辑等,才能按照iOS数据存储指南的要求由iCloud备份。另外,请检查是否有任何临时文件您的应用程序使用的只存储在/ tmp目录中;请确保在确定不再需要时删除或删除存储在此位置的文件。
可以重新创建但必须保持应用程序正常运行的数据 - 或者因为用户希望它可供脱机使用 - 应标记为“不备份”属性。对于NSURL对象,请添加NSURLIsExcludedFromBackupKey属性以防止备份相应的文件。对于CFURLRef对象,请使用相应的kCRUFLIsExcludedFromBackupKey属性。“
我们感到惊讶,因为我们的数据库位于Library根文件夹(不在Caches中),并且Documents文件夹中没有存储任何内容。那么,为什么他们引用与Documents文件夹相关的iCloud和Data Storage GuideLines?
非常感谢你的帮助。
答案 0 :(得分:1)
您的应用程序的数据库位于库文件夹中与iCloud备份无关。据推测,您启用了iCloud。因为您只有一个数据库,所以将备份所有内容。
相反,如果您的数据库包含非特定于用户的种子数据或可下载数据,则应将其与用户数据分开。创建第二个数据库并为iCloud启用一个,另一个不启用。
话虽如此,有人认为sqlite和iCloud混合得不好,因为经常损坏的数据库文件。考虑到你的报告,这似乎是真的。
最好使用核心数据。我已经从Android应用程序中完成了许多sqlite到Core Data的迁移。在让您的Core Data与其他数据库(在线,其他移动平台)完美匹配之后,您会发现您可以编写优雅而简洁的代码,并且表现非常出色。
Apple会让您有机会发布一条简短的消息,说明您在重新提交时更改的内容。
祝你好运!