1

我的一个 phonegap 2.8.1 应用程序刚刚被 Apple 拒绝,因为它使用了超过 5 MB 的存储空间,这对于 iCloud 来说太多了。我认为它们的意思是本地存储,这与我在那里存储的数据量一致。该本地存储在我的应用程序中用于两件事:

  • a)具有数千个键的键值数据库,可以从数据文件中重新创建。它是随机访问的。

  • b) 用户创建的设置和首选项,无法重新创建,并且可以从 iCloud 备份中受益

我认为我需要做的是为此使用两种不同的存储,一个标记为“不备份”,一个标记为“备份”。

我看到了三种可能性:

  1. 有两个本地存储,我该怎么做?是否可以使用不同的参数列出两次插件?不知何故,告诉 iOS 应该只备份其中一个存储。我该怎么做呢?

  2. 对其中一个使用 SQLStorage,然后以某种方式告诉 iOS 只应备份其中一个存储。我该怎么做呢?

  3. 使用文件序列化用户首选项,并将 localstorage 标记为“不备份”,我将如何处理?不知何故告诉 iOS 不应该备份本地存储。我该怎么做呢?(编辑:phonegap 中有一个xml 设置,BackupWebStorage,如果它起作用,将返回信息)

  4. 为其中一个数据库使用第三方存储产品,在这种情况下,哪个?

我通常不会在 Objective C 中编程,但如果我确切地知道该做什么,我可以找到一个人。如果这是在 Android 上,我想我可以做到。

4

2 回答 2

1

1) 您可以将特定文件标记为“不使用 iCloud 备份” 2) 某些文件夹被标记为备份,如文档,而其他文件夹则被标记为不备份,如缓存。

https://developer.apple.com/library/ios/qa/qa1719/_index.html

于 2013-09-19T20:49:53.823 回答
1

好的,我刚从一位 beta 测试人员那里得到信息,而且 phonegap 2.8.1 中的 BackupWebStorage 设置似乎确实有效。这意味着选项 3 是可行的:

  • 将可以重新创建的键值数据存储在本地存储中,并将所有网络存储标记为不属于备份的一部分。
  • 将用户首选项存储在已备份的文件中

将本地存储标记为不属于备份的一部分

在 config.xml 文件集中:

<preference name="BackupWebStorage" value="none" />

为了检查它是否有效,Apple 建议以这种方式检查您在 iCloud 的支持下放置了多少数据:

  • 安装并启动您的应用
  • 转到设置 > iCloud > 存储和备份 > 管理存储
  • 如有必要,点击“显示所有应用”
  • 检查您应用的存储空间

请注意,这不能用模拟器完成,您需要一个真实的设备。

为用户首选项创建文件

尚未测试,但 phonegap 有一个 api。来自苹果

关键数据应存储在 /Documents 目录中。关键数据是您的应用程序无法重新创建的任何数据,例如用户文档和其他用户生成的内容

Phonegap 有一个文件 API。可以在文件上设置元数据:

仅支持“com.apple.MobileBackup”扩展属性。将该值设置为 1 以不启用 iCloud 备份文件。将该值设置为 0 以重新启用要由 iCloud 备份的文件。

于 2013-09-20T00:23:02.807 回答