您的位置:首页 > 移动开发 > IOS开发

iOS 提供一种检测新版本的方法

2017-07-13 22:13 302 查看
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;
};

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: