在iPhone应用程序升级部署sqlite DB
我在iPhone应用程序中使用sqlite作为数据源.我有两个关于应用程序升级的问题.
数据是全部配置/非事务性的.意思是它是唯读的.当我更新/添加配置数据时,我会为应用程序发布升级.当用户获得更新的iPhone应用程序时,原来是否被卸载?如果是这样,我可以确定,因为新的数据库配置数据将被部署.如果不是这样,怎么替换数据? 2.)数据是配置和事务.意思是用户可以将数据保存到数据库中.当用户升级到新版本的应用程序时,我想维护其现有数据,但是替换所有配置数据.我猜想我需要在应用程序中存储INSERT和UPDATE脚本来完成此操作.什么是有效的方法呢? 解决方法
cdespinosa已经描述了情景1,所以我会解决#2.
我还没有在iPhone上做到这一点,但是在桌面环境下,最简单的方法是将配置数据保存在一个单独的数据库中.您可以轻松地附加到多个数据库.首先打开你的主数据库,这可能是可以改变的数据库.然后sqlite3_exec一个ATTACH语句,看起来像这样: ATTACH 'filepath' AS config; 从那时起,你可以这样做: SELECT * FROM UserTableName; SELECT * FROM config.ConfigurationTableName; 我的理解是,如果您写入配置数据库,应用程序将失败签名检查,并且不会启动,并且iPhone附带的SQLite版本已经足够旧,不支持只读标志.因此,您应将配置数据库文件复制到沙箱中,并打开该副本,而不是将其复制到捆绑包中. (您当然可以使用SQL并将值从一个数据库复制到另一个数据库,但是如果您已经将整个配置数据库复制到了沙盒中,那么这应该是一个额外的步骤.只要附上.) 我希望别人能为你提供更多的细节. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |