app升级,客户不知道,只靠前方运营人员是远远不够的,最近也给加了个升级提示,在此记下,一同学习
//MARK:查看新版本
- (BOOL)checkVersion {
NSString *newVersion;
NSURL *url = [NSURL URLWithString:@"http://itunes.apple.com/cn/lookup?id=xxxxxxxxx(此处为app在商店里的id,去开发者账号上面可以找到)"];
NSString *jsonResponseString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
if (jsonResponseString != nil) {
NSData *data = [jsonResponseString dataUsingEncoding:NSUTF8StringEncoding];
//解析json数据
id json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSArray *array = json[@"results"];
for (NSDictionary *dic in array) {
newVersion = [dic valueForKey:@"version"];
}
Log(@"通过appStore获取的版本号是:%@",newVersion);
//获取本地软件的版本号
NSString *localVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; //CFBundleVersion--获取当前build版本 CFBundleShortVersionString--获取当前app版本
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"findNewVersion"];
//对比发现的新版本和本地版本
NSComparisonResult comparisonResult = [localVersion compare:newVersion options:NSNumericSearch];
switch (comparisonResult) {
case NSOrderedSame:
Log(@"本地版本与线上版本相同不需要更新");
break;
case NSOrderedAscending:
Log(@"本地版本 < 线上版本,需要更新");
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"findNewVersion"];
break;
case NSOrderedDescending:
Log(@"本地版本 > 线上版本,不需要更新");
break;
default:
break;
}
}
return hasNewVersion;
};