iOS检查版本更新

项目原来的检查代码适用于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;
}

  

  

时间: 2024-08-10 15:09:03

iOS检查版本更新的相关文章

ios 检查版本更新

// // AppCheckVersion.h // MobileBusiness // // Created by kevin on 14-7-4. // // #import <Foundation/Foundation.h> #import "Reachability.h" @class AppCheckVersion; @protocol AppCheckVersionDelegate <NSObject> @optional -(void)checkV

iOS 检测版本更新(02)

iOS 检测版本更新 如果我们要检测app版本的更新,那么我们必须获取当前运行app版本的版本信息和appstore 上发布的最新版本的信息. 当前运行版本信息可以通过info.plist文件中的bundle version中获取: [cpp] view plaincopy NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; CFShow(infoDic); NSString *appVersion = [infoDic

iOS 检测版本更新

iOS 检测版本更新 分类: IOS_XCODE 2013-07-19 16:52 18252人阅读 评论(5) 收藏 举报 如果我们要检测app版本的更新,那么我们必须获取当前运行app版本的版本信息和appstore 上发布的最新版本的信息. 当前运行版本信息可以通过info.plist文件中的bundle version中获取: [cpp] view plaincopy NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionar

App上架版本号配置的注意事项:CFBundleVersion与CFBundleShortVersionString设置,以及内部检查版本更新的代码

一.CFBundleVersion与CFBundleShortVersionString设置 CFBundleVersion:标识内部版本号,如果发包错误时可以将错误的撤回及时更改内部版本号即可. CFBundleShortVersionString:代表应用的发布版本号,该版本的版本号是三个时期分隔的整数组成的字符串.第一个整数代表重大修改的版本,如实现新的功能或重大变化的修订.第二个整数表示的修订,实现较突出的特点.第三个整数代表维护版本. 如上图:Version对应的就是CFBundleS

检查版本更新的https://itunes.apple.com/lookup?id=XXX 返回的没有数据

Looks like your app is ONLY available in Thailand storefront - so the lookup should include country code in the base lookup URL: http://itunes.apple.com/th/lookup?bundleId=com.writingfuture.where2 The alternative to using bundleId is simply looking u

SmsManager - Windows Phone手机PC端短信管理工具检查版本更新地址

SmsManager - Windows Phone手机PC端短信管理工具检查版本更新时将抓取此页面中两个特殊字符串之间的文字内容(共3处),并替换\n为换行,html转义字符为原字符. wpsmsmanager0-start[1.2]end-wpsmsmanager0 wpsmsmanager1-start[新版本V1.2已发布(2015/4/10)\n更新说明:\n可导出短信至Android手机\n前往查看?]end-wpsmsmanager1 wpsmsmanager2-start[htt

iOS 检查版本号的代码

- (void)checkNewVersion{ if ([@"appStore" isEqualToString:CHANNEL]) { AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; NSString *url = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?id=%@",

iOS Appstore 版本更新

1,版本更新 通过比较构建号/版本号 检查更新 ///  构建号 50 // NSString * currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleVersion"]; /// 版本号 2.2.0 //CFBundleShortVersionString NSString * currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBun

iOS 检测版本更新处理

如果我们要检测app版本的更新,那么我们必须获取当前运行app版本的版本信息和appstore 上发布的最新版本的信息. 当前运行版本信息可以通过info.plist文件中的bundle version中获取: NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary]; NSString *currentVersion = [infoDic objectForKey:@"CFBundleVersion"]; 这样就获取