完成这个需求大体四步
1.获取App Store项目版本信息
2.获取本地版本信息
3.本地与线上版本进行对比
4.跳转App Store下载新版本
NSString *sign = [[NSUserDefaults standardUserDefaults] valueForKey:@"downLoadSign"];
NSUInteger num = [sign integerValue];
NSString *securlStr = @"https://itunes.apple.com//lookup?id=1317191959";
NSURL *url = [NSURL URLWithString:securlStr];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[NSURLConnection connectionWithRequest:req delegate:self];
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
NSError *error;
//解析
NSDictionary *appInfo = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
NSArray *infoContent = [appInfo objectForKey:@"results"];
//最新版本号
NSString *version = [[infoContent objectAtIndex:0] objectForKey:@"version"];
NSString *secVersion = [version stringByReplacingOccurrencesOfString:@"." withString:@""];
NSInteger versionNum = [secVersion integerValue];
NSLog(@"最新版本号%@",version);
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
//当前版本号
NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
NSString *secCurrentVersion = [currentVersion stringByReplacingOccurrencesOfString:@"." withString:@""];
NSInteger secVersionNum = [secCurrentVersion integerValue];
if (secVersionNum < versionNum) {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"AppStore上有新版本可以下载" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"去下载" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
NSString *urlStr = @"itms-apps://itunes.apple.com/us/app/hong-xing-hui-yao/id1317191959?l=zh&ls=1&mt=8";
NSDictionary *dic = [NSDictionary dictionary];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr] options:dic completionHandler:^(BOOL success) {
}];
}];
UIAlertAction *cancel = [UIAlertAction actionWithTitle:@"暂不考虑" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
}];
[alert addAction:sureAction];
[alert addAction:cancel];
UIWindow *aW = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
aW.rootViewController = [[UIViewController alloc]init];
aW.windowLevel = UIWindowLevelAlert + 1;
[aW makeKeyAndVisible];
[aW.rootViewController presentViewController:alert animated:YES completion:nil];
}
}
至于优化完善工作 就请读者根据自身项目需求来完善啦