APP检测更新可以使用两种方法。第一种是和安卓等系统一样,获取自己服务器的APP版本号与已安装的APP版本号比较;第二种是根据已发布到app store上的应用版本号与已安装的APP版本号比较更新。第一种检测更新方法的优点是:检测更新速度快、检测稳定;缺点是:和app store上的应用版本号不同步(app上架需要审核时间,不确定什么时候成功更新到app store上)。第二种方法检测更新方法的优点是:检测版本号是实时同步的;缺点是:由于苹果审核应用程序的流程以及网络的问题,检测更新有一定的延时。本人做的事IOS开发所以比较倾向于第二种,原因很简单,既然做的事IOS开发使用和苹果提供的API或者说服务走的更接近应该会好点。(可能是心理因素)
// 通过同步请求,解析json数据,得到了数据// 0、发送请求获取APP Store应用程序信息 NSError *error; NSString *APPID = @"943341949"; NSString *itunesStr = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",APPID]; NSURL *itunesURL = [NSURL URLWithString:itunesStr]; NSURLRequest *request = [NSURLRequest requestWithURL:itunesURL]; NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; NSDictionary *appInfoDict = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableLeaves error:&error]; NSArray *resultArray = [appInfoDict objectForKey:@"results"]; NSDictionary *dict = resultArray[0]; NSLog(@"dict===%@",dict); NSString *version = [dict objectForKey:@"version"]; //版本 NSString *trackViewUrl = [dict objectForKey:@"trackViewUrl"]; //下载地址 NSString *trackName = [dict objectForKey:@"trackName"]; //应用名称 // 1、获取此应用程序的版本 NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary]; NSString *appVersion = [infoDict objectForKey:@"CFBundleShortVersionString"]; NSLog(@"appVersion===%@",appVersion); NSArray *versionArr = [version componentsSeparatedByString:@"."]; //网络版本 NSArray *appVersongArr = [appVersion componentsSeparatedByString:@"."]; //本地版本 //将版本号变为 三个数 if (versionArr.count == 3) ; else { version = [NSString stringWithFormat:@"%@.0",version]; } if (appVersongArr.count == 3) ; else { appVersion = [NSString stringWithFormat:@"%@.0",appVersion]; } //字符串替换 version = [self replaceString:version]; appVersion = [self replaceString:appVersion]; //将字符串 转化 为int类型的数字 int versionI = [version intValue]; int appVersionI = [appVersion intValue]; NSLog(@"versionI==%d,appVersionI==%d",versionI,appVersionI); //判断是否需要更新 if (versionI > appVersionI) { NSLog(@"更新应用程序"); } else { NSLog(@"当前已经是最新版本"); }}//字符串替换- (NSString *)replaceString:(NSString *)string{ NSMutableString *mutableStr = [NSMutableString stringWithString:string]; NSString *search = @"."; NSString *replace = @""; NSRange subStr = [mutableStr rangeOfString:search]; while (subStr.location != NSNotFound) { [mutableStr replaceCharactersInRange:subStr withString:replace]; subStr = [mutableStr rangeOfString:search]; } return mutableStr;}
如果有懒人,不想手动敲上面的代码同时为大家提供了Demo。是不是发现我很好呢,哈哈
Demo下载地址:
大家也可以关注我的微信公众账号:IOS开发实例