iOS 应用版本对比

本文的目的就一个,通过对比 App Store 成功发布的App 版本号 来确认当前手机中安装的客户端版本号是否有区别.

如果有区别,那么可以提示用户可以去App Store 升级了.

首先是获取App Store 某个应用的版本号,提供App ID  即可,返回Json形式的字符串

http://itunes.apple.com/lookup?id=507704613

接下来通过 NSMutableURLRequest NSURLConnection  访问上面的Url  获取Json串,代码如下:

NSString *post=nil;
post=[[NSString alloc]initWithFormat:@"id=%@",_appID];//testid为你的appid
NSData *postData=[post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength=[NSString stringWithFormat:@"%d",[postData length]];
NSMutableURLRequest *request=[[NSMutableURLRequest alloc]init];
[request setURL:[NSURL URLWithString:@"http://itunes.apple.com/lookup?"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];    

NSURLConnection *conn=[[NSURLConnection alloc]initWithRequest:request delegate:self];
[request release];
[conn release];
[post release];

执行成功后,委托获取Json数据. 此时通过  SBJson开源框架 将 Json 字符串 转换成   NSDictionary转换之前先将 获取到的 NSData
转换成 NSString 

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [_appInfoData appendData:data];
}
-(void) connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSString *jsonString=[[NSString alloc] initWithData:_appInfoData encoding:NSUTF8StringEncoding];
    SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
    NSDictionary *jsonData = (NSDictionary *)[jsonParser objectWithString:jsonString error:NULL];
}

NSDictionary打印出如下结构数据

{

    resultCount = 1;

    results =(

                {

            artistId =公司 ID;

            artistName = "公司名称";

            artistViewUrl = "公司地址,可以看到本公司发布的其他App";

            artworkUrl100 = "大版的App ICON 1024*1024";

            artworkUrl512 = "大版的App ICON 1024*1024";

            artworkUrl60 = "小版的App ICON 57*57";

            bundleId = "com.flyrise.FEOA";//App Identifier

            contentAdvisoryRating = "4+";

            currency = USD;

            description = "描述";

            features = ();

            fileSizeBytes = 4166039;

            formattedPrice = Free;

            genreIds = (

                6000,

                6015

            );

            genres = (

                Business,

                Finance

            );

            ipadScreenshotUrls = (

            );

            isGameCenterEnabled = 0;

            kind = software;

            languageCodesISO2A = (

                ZH

            );

            price = 0;

            primaryGenreId = 6000;

            primaryGenreName = Business;

            releaseDate = "2012-05-18T10:36:58Z";

            releaseNotes = "新版本发布描述";

            screenshotUrls =(

                "介绍图片1",

                "介绍图片2",

                "介绍图片3",

                "介绍图片4",

                "介绍图片5"

            );

            sellerName = "ZHUHAI FLYRISE Co.,LTD";

            supportedDevices =             (

                all

            );

            trackCensoredName = "App 名称";

            trackContentRating = "4+";

            trackId =App ID;

            trackName = "App 名称";

            trackViewUrl = "http://itunes.apple.com/us/app/ye-wu-xie-zuo-ping-tai/id507704613?mt=8&uo=4";//App
Store 某个App 的地址

            version = "5.5.1";//App 当前版本号,进行版本对比的重点

            wrapperType = software;

        }

    );

}

通过转换后的NSDictionary 获取App Store发布成功的App 版本号

NSArray *infoArrays=[jsonData objectForKey:@"results"];
NSDictionary *releaseInfo=[infoArrays objectAtIndex:0];
NSString *releaseVersion =[releaseInfo objectForKey:@"version"];

获取手机已经安装的App 版本号

NSString *localVersion =[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];

那么进行字符串对比,就可以知道需不需要更新了.

 

时间: 2024-09-28 03:14:27

iOS 应用版本对比的相关文章

《Windows 8 权威指南》——1.5 版本对比

1.5 版本对比 Windows 8 权威指南 当今电脑操作系统有许多的分支,总而言之分为三部分.其一是微软代表的Windows系统家族:其二是UNIX以及其分支Linux:其三就是苹果的Mac Os.本章我们主要对比一下Windows的几个版本之间的差别以及与Linux版本中最具代表性的Ubuntu的差别. 1.5.1 Ubuntu 12.04与Windows 8的对比 Ubuntu是目前最流行的Linux操作系统之一,最新的版本更新到了12.04.本节我们从以下几个方面来对比一下Window

ios实现文件对比的方法

  这篇文章主要介绍了ios实现文件对比的方法,主要是用到了filemanager,有需要的小伙伴可以参考下. 这段object c代码用来检测两个指定路径的文件内容是否完全相同    代码如下: if ([fileManager contentsEqualAtPath:@"FilePath1" andPath:@" FilePath2"]) { NSLog(@"Same content"); 以上所述就是本文的全部内容了,希望大家能够喜欢.

高效的 iOS 应用版本支持方法

本文讲的是高效的 iOS 应用版本支持方法, 极少数应用程序很"奢侈"的只支持最新版本的 iOS. 设置一个较低的部署目标以及基于特定 iOS 版本的代码分支通常是很有必要的.虽然苹果公司的信息有些矛盾,还是有各种办法来完成这个.最近在这条 tweet上看到有人警告说,不要这样做: #define IsIOS7 ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue]>=7) GitHub

iOS 各版本中的新特性(What's New in iOS)- 目录翻译完成

iOS 各版本中的新特性(What's New in iOS) 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 介绍 Introduction文档组织结构 Organization of Thi

苹果最后完善3D地图功能 测试10A3XX of iOS 6版本

近日,据美国科技博客网站Boy Genius Report报道,报道称,苹果现在正对3D地图功能进行最后的完善,目前正在测试10A3XX of iOS 6版本. 众所周知,苹果在此前多年时间里一直都在自主开发地图应用,现在看起来该公司已经做好了发布最新iOS版地图应用的最后准备,藉此从使用谷歌的地图数据转为使用自己的服务.Boy Genius Report称,该博客已经从一名可以信赖的消息人士那里获得了有关苹果地图应用的部分信息和照片,这个应用拥有更新后的用户界面,其中包括一个全新的导航条.消息

ios 构建版本-iOS 构建版本 ERROR ITMS-90207: "Invalid Bundle. 。。。

问题描述 iOS 构建版本 ERROR ITMS-90207: "Invalid Bundle. ... 我是用Xcode7.1 构建版本 错误ERROR ITMS-90207: "Invalid Bundle. The bundle at 'JiJie.app' does not contain a bundle executable." 使用Xcode6.4 没有出现的但传上去 一直显示 "正在处理" 求大神搭救???? 解决方案 加qq说吧.1700

ios 构建版本错误-ios 构建版本 ERROR ITMS-90529 90534 90207

问题描述 ios 构建版本 ERROR ITMS-90529 90534 90207 ERROR ITMS-90529: "Invalid package. Applications built with sdk 9.0 or later must be packaged as proper IPA files." ERROR ITMS-90534: "Invalid Toolchain. New apps and app updates must be built with

如何选择Cisco IOS软件版本

本文主要介绍了IOS命名规则和特性集,同时介绍了IOS参考版本评估,相信 看过此文,大家对于IOS软件版本有个详细的了解.IOS 命名规则与特性集Cisco 的IOS 软件映像文件的文件名有一定的命名规则,方便客户初步识别该映像文件的特性集.Cisco 的IOS 文件名,如c7200-ajs40-mz,包括三个主要部分:* 硬件平台* 特性集* 内存特性硬件平台c7200-ajs40-mz 中C7200 代表了软件适用的硬件平台,如C7200 表示的是Cisco7200 系列路由器,RSP 代表

Android和iOS谁更强:Android 4.4与iOS 7的对比

Android和iOS谁更强?看到这个问题两大阵营的用户们估计又要吵翻天了.但谁都不能否认的是,这两款操作系统都具备着超强的实力,才能够取得如今的成绩. 在最近,Android和iOS都各自升级到了最新的版本,并变得更加漂亮.快速和全能了.与此同时,这两款操作系统在许多方面都呈现出了同质化的迹象.但是,它们也都各自拥有一些独特的元素来区别彼此--这些有的是优势,而有的却是劣势.日前,科技网站PhoneArena就对Android 4.4 KitKat和iOS 7两款系统在各个方面的表现和处理进行