Core data 需要什么来确保新的版本控制核心数据文件与应用程序一起使用?

Core data 需要什么来确保新的版本控制核心数据文件与应用程序一起使用?,core-data,ios6,xcode4.6,Core Data,Ios6,Xcode4.6,我设置了用于版本控制的工作核心数据sqlite文件。版本控制设置过程创建了3个文件: foo.sqlite foo.sqlite-shm foo.sqlite-wal 从那时起,我可以通过编程方式(使用MagicalRecord)访问核心数据存储,但我不能使用Firefox插件(SQLite管理器)或应用程序SQLItemManager读取任何数据。我担心,当我将更新后的应用程序发送到应用商店时,附加文件不会消失,应用程序会崩溃 我需要做什么来确保新版本控制的sqlite文件与应用程序一起使

我设置了用于版本控制的工作核心数据sqlite文件。版本控制设置过程创建了3个文件:

  • foo.sqlite
  • foo.sqlite-shm
  • foo.sqlite-wal
从那时起,我可以通过编程方式(使用MagicalRecord)访问核心数据存储,但我不能使用Firefox插件(SQLite管理器)或应用程序SQLItemManager读取任何数据。我担心,当我将更新后的应用程序发送到应用商店时,附加文件不会消失,应用程序会崩溃

我需要做什么来确保新版本控制的sqlite文件与应用程序一起使用

如果您使用的是轻量级迁移(wich),则通过传递 正确的选项(当您打开存储时),核心数据 就地升级架构

附加的WAL和SHM文件不是轻量级的结果 迁移,而不是简单地由SQLite在“write”中生成 核心数据进入的“提前记录”模式。(一) 过于简单化的是,新数据会进入.wal文件,直到 累积足够的数据,然后将其移动到.sqlite文件。)

是的,您肯定想要使用轻量级的特别构建进行测试 迁移;从Xcode进行测试是不够的


Mike Fikes

那些不是版本相关的文件,它们是SQLite日志文件。启用预写日志记录后,将自动创建这些文件。这不是iOS 6中的默认设置,但如果使用
PRAGMA journal\u mode=WAL。这可能是iOS 7中的默认设置,也可能不是(目前我没有任何评论)


我不知道为什么Firefox和SQLItemManager无法打开该文件。我推测他们都在使用SQLite的旧版本(因为WAL只在SQLite 3.7.0中才可用)。无论如何,它们与应用程序中是否有必要的文件无关。您只需查看一下,就可以了解应用程序中包含的内容。
.app
实际上只是一个目录,所以看看里面有什么。

嗨,汤姆。。。我没有.app;我有一个.ipa。是否有任何方法可以查看.ipa中的内容?如果您是构建应用程序的人,您可以随时从Xcode获取.app。您可以使用解压打开ipa--这只是一个zip存档--但是您应该已经有了可用的.app,因为创建ipa需要它。有趣的。。。我以前从未做过。。。无论如何,我的.app文件中似乎没有CoreData存储。归档实用程序甚至不会显示窗口,尽管它显示在dock上。