gpt4 book ai didi

iOS 6 本地存储文件出现两次

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:43 25 4
gpt4 key购买 nike

我有一个应用程序使用本地存储(使用 sencha 'Ext.data.proxy.LocalStorage')来离线查看一些内容。我因违反 iOS 数据存储指南而被 iTunes 拒绝。

我认为这可能与 iOS 5.1 之前的 iOS 中的/Documents 文件夹中的 localStorage 有关。为了确认在较新版本中文档文件夹是空的,我进行了检查,但我仍然找到了一个 .file__0.localstorage。

奇怪的是,同一个文件(但没有前导点)也存在于 library/caches 文件夹中,它应该在的位置。

两者具有相同的内容。

有谁知道这是怎么发生的?我已经在 Sencha 支持中询问过,但它似乎与 Sencha 框架无关。

注意:我没有使用 PhoneGap,只使用了 Sencha。

最佳答案

使用写入本地存储的 Sencha 制作一个非常小的 Hello World 应用程序我可以重现此行为。似乎在应用程序退出时,它会将本地存储文件的副本写入/Documents 文件夹。

这对我来说似乎很可疑,它让我想起了 iOS 5.1 的 PhoneGap 补丁,它也备份了 localStorage 文件。

在 iOS 5.1 中,Apple 开始将 localStorage 文件放在 Library/Caches 文件夹中,这破坏了许多应用程序,因为数据不再可靠存储。因此 PhoneGap 和其他公司开始实现 Workarrounds,将 localStorage 文件备份到文档文件夹,并在需要时自动恢复。

为了找到 Sencha 做类似事情的证据,我打开了生成的 .app 包并找到了一个包含 native 包装器代码的 stbuild_template 文件。它当然是经过编译的,但是搜索字符串“localStorage”会得到一些有趣的结果,例如:

restoreLocalStorage
preserveLocalStorage
Could not remove source file while backing up localstorage Could not copy localstorage backup . Caches WebKit/LocalStorage .file__0.localstorage file__0.localstorage
SNLocalStoreageFix

我还发现了很多对 NimbleKit 的引用,它似乎在内部用于包装。

该线程还暗示了 OP 正在使用的 Sencha Touch 2.1 中 iOS 5.1 本地存储问题的解决方案:http://www.sencha.com/forum/showthread.php?194674-Localstorage-and-native-iOS-5.1-apps&s=04149e771f9c4eea15cb6f6d97069ff6

对我来说,所有这些都是 Sencha 为 iOS 5.1 实现了一个工作区的证据,它将把 localStorage 放在/Documents 文件夹中。由于您只使用 localStorage 文件进行缓存,Apple 拒绝了您,因为您将非用户数据存储在/Documents 中。

我认为使用 PhoneGap 有一个选项可以禁用此备份。因此,您可能要考虑使用它或询问 Sencha 是否有类似的选项来禁用它。

关于iOS 6 本地存储文件出现两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14258915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com