使用MDM推送应用更新时防止数据丢失

时间:2015-07-31 09:52:21

标签: ios objective-c mdm

我的应用程序离线存储数据(使用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应用程序时)。

1 个答案:

答案 0 :(得分:0)

我同意@muenzpraeger的说法,这种行为很不寻常。在iOS中,新版本的应用程序安装到新位置(使用新的UUID绝对路径),然后将数据从原始文件夹复制到新文件夹。最后删除原始文件夹。

问题可能是您的SQLlite数据库存储在一个临时文件夹中,在安装过程中不会被转移。您能否确认存储数据库的位置?它应该在您的Documents文件夹下。