我有一个 SQLite 数据库,需要使用 iCloud 进行备份。我知道苹果建议不要同步整个数据库,它可能reject the App 。可能的解决方法包括 -
1) 切换到核心数据 - 对于这个选项来说已经太晚了,并且考虑到核心日期的学习曲线,我不希望延长时间表。
2) 维护 SQLite 日志文件并同步日志文件 - 这个选项更有效,我将把它作为故障安全装置
3) 使用 ZipArchive 压缩数据库并同步 zip 文件 - 这将是最容易实现的,但我不确定 Apple 是否会拒绝或接受这一点。压缩前的大小为 300kb,压缩后的大小约为 40kb。
还有其他人尝试过 zip 方法并成功将他们的应用程序提交到应用程序商店吗?
任何其他建议都会非常有帮助。
谢谢
最佳答案
好吧,严格来说,该链接讨论的是在 iCloud 上同步 sqlite 数据库。您说您想要备份。如果您不需要不同的设备来编辑相同的数据库文件,那么您可能没问题。
但是,如果您需要不同的设备对“相同”数据库文件具有编辑权限(同步),则无法使用 sqlite 通过上传实际数据库文件在 iCloud 上执行此操作 - 您最终会得到一个损坏的数据库。
您必须实现自己的事务日志系统 - 在每个设备上保留单独的数据库,并且您的日志文件用于使它们彼此保持同步。这实际上就是 Apple 为其核心数据同步解决方案所做的事情 - 数据库仅存在于设备上,而不存在于 iCloud 中 - 只有事务日志文件会上传到 iCloud。
有谁知道是否有人已经发明了解决方案来做到这一点?它不应该超出可能性范围......
实际上,this答案与我刚刚所做的几乎相同...
关于iphone - 在 iOS 中同步压缩的 sqlite 数据库可能会导致应用程序被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16580906/