標籤:
項目原來的檢查代碼適用於1.2 1.3格式。一般正常的項目格式應該是1.2.2 ,如此大版本.小版本格式。
貼下代碼
-(void)onCheckVersion{ dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_async(queue, ^{ NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"]; NSString *URL = @"http://itunes.apple.com/lookup?id=xxx"; NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:URL]]; [request setHTTPMethod:@"POST"]; NSHTTPURLResponse *urlResponse = nil; NSError *error = nil; NSData *recervedData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error]; NSString *results = [[NSString alloc] initWithBytes:[recervedData bytes] length:[recervedData length] encoding:NSUTF8StringEncoding]; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:[results dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:nil]; NSArray *infoArray = [dic objectForKey:@"results"]; if ([infoArray count]) { NSDictionary *releaseInfo = [infoArray objectAtIndex:0]; NSString *lastVersion = [releaseInfo objectForKey:@"version"]; if (([self versionNumberConVersion:lastVersion] >[self versionNumberConVersion:currentVersion])) { alert = [UIAlertController alertControllerWithTitle:@"發現新版本" message:[releaseInfo objectForKey:@"releaseNotes"] preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"暫不" style:UIAlertActionStyleCancel handler:nil]; [alert addAction:cancelAction]; UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"更新" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {// NSURL *url = [NSURL URLWithString:@"https://itunes.apple.com/cn/app/xxname/idxxx?l=en&mt=8"]; NSURL *url = [NSURL URLWithString:@"itms-apps://itunes.apple.com/cn/app/xxname/idxxx?mt=8"]; [[UIApplication sharedApplication]openURL:url]; }]; [alert addAction:sureAction]; dispatch_async(dispatch_get_main_queue(), ^{ [self presentViewController:alert animated:YES completion:nil]; }); } } });}
-(int)versionNumberConVersion:(NSString*)version{ //假如版本號碼1.5.1 如下 這邊需要確定幾位小數,來確定數組個數。 int num1 = 0; NSArray *ary = [version componentsSeparatedByString:@"."]; if (ary.count) { for (int i = 0; i<ary.count; i++) { if (i==0) { num1 = [ary[0] intValue]*10000; }else if (i==1){ num1 = [ary[0] intValue]*10000+[ary[1] intValue]*100; }else if (i==2){ num1 = [ary[0] intValue]*10000+[ary[1] intValue]*100+[ary[2] intValue]; }else if (i>=3){ num1 = [ary[0] intValue]*10000+[ary[1] intValue]*100+[ary[2] intValue]; } } } //NSLog(@"版本號碼%d",num1); return num1;}
iOS檢查版本更新