由于改版之后应用中不能含有自动更新提示的样式,只能提示用户进行更新
App检测更新可以使用两种方法。第一种是和安卓等系统一样,获取自己服务器的App版本号与已安装的App版本号比较;第二种是根据已发布到App Store上的应用版本号与已安装的App版本号比较更新。第一种检测更新方法的优点是:检测更新速度快、检测稳定;缺点是:和App Store上的应用版本号不同步(App上架需要审核时间,不确定什么时候成功更新到App Store上)。第二种方法检测更新方法的优点是:检测版本号是实时同步的;缺点是:苹果网络不稳定,检测更新有点延时,部分App获取不到任何参数。
方法一:获取自己服务器版本号检查 1、通过网络请求获取服务器上的版本号; 2、调用上面的比较方法,比较前应用版本号和服务器上的版本号; 3、如果有版本更新则跳转到App Store上下载。
方法二:获取App Store上架版本号检查 1、通过网络同步请求获取App Store上对应APP ID的应用信息; 2、提取信息上的最新版本号等信息; 3、提取最新版本号; 4、调用上面的比较方法,比较前应用版本号和最新版本号; 5、如果有版本更新则跳转到App Store上下载。
/**获取程序的版本号*/NSString *version = [[[NSBundle mainBundle]infoDictionary] objectForKey:@"CFBundleVersion"];AFHTTPsessionManager *mgr = [AFHTTPSessionManager manager];[mgr.responseSerializer setAcceptableContentTypes: [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil]];NSMutableDictionary *dict = [NSMutableDictionary dictionary];// dict[@"id"] = @"1073033949";// 上架的IDdict[@"id"] = App_ID;// 你程序的apple ID号[mgr POST:App_URL parameters:dict success:^(NSURLSessionDataTask * _Nonnull task, id _Nonnull responSEObject) {// App_URL http://itunes.apple.com/lookup NSArray *array = responseObject[@"results"]; if (array.count != 0) {// 先判断返回的数据是否为空 没上架的时候是空的 NSDictionary *dict = array[0]; self.dictM = dict; [array writeToFile:App_URLPath atomically:YES];// 这是我保存到本来了 后面的功能要使用 if ([dict[@"version"] floatValue] > [version floatValue]) {//判断版本大小了 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"更新" message:@"有新的版本更新,是否前往更新?" delegate:self cancelButtonTitle:@"关闭" otherButtonTitles:@"更新", nil] ; alert.delegate = self; [alert show]; } }} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {}];新闻热点
疑难解答