我的应用程序离线存储数据(使用sqlite),当它上线时,它会将数据与中央服务器同步(用户启动的事件)。
该应用程序是企业版,已使用MDM
进行分发。但是,每当我将更新推送到我的应用程序时,旧的应用程序数据就会完全消失,新应用程序会以静默方式安装。
这就是我构建数据库的方式
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *dbPath = [paths objectAtIndex:0];
databaseName = @"abc.sqlite";
databasePath = [dbPath stringByAppendingPathComponent:databaseName];
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:databasePath])
{
const char *newPath = [databasePath UTF8String];
}
}
如何阻止这种情况发生?有没有办法安装和更新旧的应用程序数据(例如我们更新Facebook或Watsapp应用程序时)。
答案 0 :(得分:0)
我同意@muenzpraeger的说法,这种行为很不寻常。在iOS中,新版本的应用程序安装到新位置(使用新的UUID绝对路径),然后将数据从原始文件夹复制到新文件夹。最后删除原始文件夹。
问题可能是您的SQLlite数据库存储在一个临时文件夹中,在安装过程中不会被转移。您能否确认存储数据库的位置?它应该在您的Documents文件夹下。