如何更新ios6企业应用程序

您好,我们最近开发了我们的第一个企业应用程序我们正在使用“内部”选项创建分发证书.客户端尚未使用该应用.但他很快就会使用它.同时我有一个问题.他会使用该应用程序,将来如果有来自我们这方面的应用程序的任何更新,我们希望客户端更新他的身边.像现在我已经在我的iPhone上安装了应用程序.我从AppStore获取更新说,XYZ应用程序已更新.所以我安装更新.现在,如果我们的客户端正在使用应用程序并保存了一些数据(我们的应用程序使用核心数据,并且我们以客户端可以在设备上存储一些数据的方式构建它们),我们想向他安装一个更新更新,但不会删除任何现有的客户端数据.这是可能吗?我该怎么做?我现在正在使用空中安装来安装应用程序.我们有一个安全的服务器,其中存在.ipa和.plist文件,我们有一个下载html页面.客户点击链接并安装应用程序.如果您需要更多信息,请通知我.谢谢.

解决方法

是的,这是可能的.部署Enterprise应用程序时,它需要一个包含应用程序元数据的plist.此元数据包括可用于检查更新的版本号.
BOOL updateAvailable = NO;
NSDictionary *updateDictionary = [NSDictionary dictionaryWithContentsOfURL:
                                  [NSURL URLWithString:@"http://www.example.com/pathToPlist"]];

if(updateDictionary)
{
    NSArray *items = [updateDictionary objectForKey:@"items"];
    NSDictionary *itemDict = [items lastObject];

    NSDictionary *MetaData = [itemDict objectForKey:@"Metadata"];
    Nsstring *newversion = [MetaData valueForKey:@"bundle-version"];
    Nsstring *currentversion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundLeversion"];

    updateAvailable = [newversion compare:currentversion options:NSNumericSearch] == NSOrderedDescending;
}

一旦检测到更新可用,导航到用户下载URL

itms-services://?action=download-manifest&url=<url-path-to-plist>

并且它将安装在现有版本上,使所有数据保持一致,甚至如果您设置自动迁移并进行更改则升级CoreData数据库.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...