苹果本来就自带版本更新,但是有些客户就要做版本更新。苹果提供了开放的接口
http://itunes.apple.com/lookup?id=appleID // appleID App store appleID
appleID
#pragma mark 版本更新
NSString *appleID =@"1120559848"; //App store appleID
NSMutableURLRequest *request = [[NSMutableURLRequestalloc] init];
[request setURL:[NSURLURLWithString:[NSStringstringWithFormat:@"http://itunes.apple.com/lookup?id=%@",appleID]]];
[request setHTTPMethod:@"GET"];
NSData *returnData = [NSURLConnectionsendSynchronousRequest:request returningResponse:nilerror:nil];
NSMutableDictionary *jsondata = [NSJSONSerializationJSONObjectWithData:returnData options:NSJSONReadingMutableLeaveserror:nil];
NSLog(@"jsondata===%@",jsondata);
NSMutableArray *resultsArr = [jsondataobjectForKey:@"results"];
NSMutableDictionary *infodic = [resultsArrobjectAtIndex:0];
NSString *latestVersion = [infodicobjectForKey:@"version"];
NSString *trackViewUrl = [infodicobjectForKey:@"trackViewUrl"];
NSLog(@"%@",trackViewUrl);
NSLog(@"latestVersion=%@",latestVersion);
[[NSUserDefaultsstandardUserDefaults]setObject:trackViewUrlforKey:@"trackViewUrl"];
NSLog(@"uurrll=%@",trackViewUrl);
NSDictionary *infoDict = [[NSBundlemainBundle] infoDictionary];
NSString *currentVersion = [infoDictobjectForKey:@"CFBundleShortVersionString"];
NSLog(@"当前版本号是%@",currentVersion);
NSLog(@"doublecurrent=%@",currentVersion);
if ([currentVersionisEqualToString:latestVersion]) {
NSLog(@"版本相同不用更新");
[[NSUserDefaultsstandardUserDefaults] removeObjectForKey:@"updateVersion"];
[[NSUserDefaultsstandardUserDefaults] setObject:@"no"forKey:@"updateVersion"];
}else
{ NSArray * newVerAry = [latestVersioncomponentsSeparatedByString:@"."];
NSArray * curVerAry = [currentVersioncomponentsSeparatedByString:@"."];
for (int i =0; i < [newVerAry count] || i < [curVerArycount]; i++)
{
int newSubVer, curSubVer;
// 如果子版本号数不足,作为0处理
if (i >= [newVerArycount])
{
newSubVer = 0;
}
else
{
newSubVer = [[newVerAry objectAtIndex:i]intValue];
}
if( i >= [curVerArycount])
{
curSubVer = 0;
}
else
{
curSubVer = [[curVerAry objectAtIndex:i]intValue];
}
if( newSubVer > curSubVer)
{
NSLog(@"当前版本低,需要更新");
[[NSUserDefaultsstandardUserDefaults] removeObjectForKey:@"updateVersion"];
[[NSUserDefaultsstandardUserDefaults] setObject:@"yes"forKey:@"updateVersion"];
NSLog(@"version == yes");
//跳转
UIAlertView *alter = [[UIAlertViewalloc] initWithTitle:@"有新版本更新"message:nildelegate:selfcancelButtonTitle:nilotherButtonTitles:@"更新",nil];
[alter show];
return;
}
elseif( newSubVer < curSubVer)
{
NSLog(@"当前版本高不需要更新");
[[NSUserDefaultsstandardUserDefaults] removeObjectForKey:@"updateVersion"];
[[NSUserDefaultsstandardUserDefaults] setObject:@"no"forKey:@"updateVersion"];
return;
}
}
}