APP版本更新判断小记

昨晚在家发版APP的时候遇到了一个小bug,在这里记录一下。

场景还原:
昨晚在家更新了app新的版本: 2.1.10,然后运行的时候居然提示了有新的版本可供下载,看了一眼release note,发现这个release note是2.1.9版本的。代码如下:

NSString *url = S(@"http://itunes.apple.com/cn/lookup?id=%@", kAppstoreID);
        
[sessionManager GET:url parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {
    NSError *error;
    NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseObject options:0 error:&error];
    if (json) {
        NSArray *array = [json objectForKey:@"results"];
        if (array.count > 0) {
            NSDictionary *dict = [array objectAtIndex :0];
            NSString *itunesVersion = [array objectAtIndexSafely:0][@"version"];
            NSString *strVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
            CGFloat version = [block_self floatValueFromItunesAppVersionString:strVersion];
                    
            if ([block_self floatValueFromItunesAppVersionString:itunesVersion] > version){
                block_self.appstoreUrl = [array objectAtIndexSafely:0][@"trackViewUrl"];
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"亲,又有新版本了,去看看吧"
                                                                message:dict[@"releaseNotes"]
                                                               delegate:block_self
                                                      cancelButtonTitle:@"立刻升级"
                                                      otherButtonTitles:@"取消", nil];
                [alert show];
            }
        }
    }
} failure:^(NSURLSessionDataTask *task, NSError *error) {
            
}];

这里的请求用的是itunes自带的请求,返回的信息中包括APP的基本信息,大小,分类,版本信息等,这里正是获得版本号,然后与本地info.plist中的CFBundleShortVersionString进行比较,如果当前info.plist中的版本较低则提醒用户更新。

错误原因:
错误原因也很简单,这里比较两个字符串方式存在问题,使得"2.1.9" 大于了 "2.1.10",因此重新处理一下比较函数即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,590评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,734评论 25 709
  • 前两天,刚考完《现代信息处理技术》。考场上有一个小题的知识点我不太熟悉,换句话说是自己之前复习的时候根本没有上心刨...
    零羊阅读 3,514评论 10 2
  • 清芷每天有空时都会找方姐和孙涵涵聊天,告诉他们妈妈的病情,清芷觉得很幸运,能有这么好的闺密和老板,总是给自己加油打...
    悠悠倾阅读 2,463评论 0 0
  • 人生就像一盘蚊香,当你遇见相同或类似的情形时,你已经走了一圈了。——前记 如果要问我对这个城市记忆最深的地方,我还...
    南山涌泉阅读 3,982评论 4 2