iOS 检测版本更新代码-OC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
- (void)checkAppVersion {
NSDate *now = [NSDate date];
NSTimeInterval interval = [now timeIntervalSinceDate:[DataCenter singleton].appVerCheckDate];
if (interval < 24 * 60 * 60) {
// 一天内检测一次
return;
}

[DataCenter singleton].appVerCheckDate = now;

NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/cn/lookup?id=%@", @"你的 APP 的 apple id"];

[[AFHTTPSessionManager new] GET:urlString parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) {

NSArray *infoArray = [responseObject objectForKey:@"results"];
if ([infoArray count]) {
NSDictionary *releaseInfo = [infoArray objectAtIndex:0];
NSString *onlineVersionString = [releaseInfo objectForKey:@"version"];
NSString *thisVersionString = [Utility versionRelease];

NSArray *onlineVersionComponents = [onlineVersionString componentsSeparatedByString:@"."];
NSArray *thisVersionComponents = [thisVersionString componentsSeparatedByString:@"."];

NSUInteger minCount = MIN(onlineVersionComponents.count, thisVersionComponents.count);
BOOL onlineVerGreaterThanThisVer = NO;
for (NSUInteger i = 0; i < minCount; i ++) {
NSUInteger onlineVersionBit = [onlineVersionComponents[i] integerValue];
NSUInteger thisVersionBit = [thisVersionComponents[i] integerValue];
if (onlineVersionBit == thisVersionBit) {
// 只要是相等就继续找下去,直至找到一个不相等的才能知道谁大谁小
continue;
}else{
if (onlineVersionBit > thisVersionBit) {
onlineVerGreaterThanThisVer = YES;
}else{
// onlineVersionBit < thisVersionBit
onlineVerGreaterThanThisVer = NO;
}
break;
}
}

if (onlineVerGreaterThanThisVer == NO && onlineVersionComponents.count > thisVersionComponents.count) {
onlineVerGreaterThanThisVer = YES;
}

if (onlineVerGreaterThanThisVer) {
NSLog(@"APP需要更新");
self.urlApp = [releaseInfo objectForKey:@"trackViewUrl"];
[HDAlertView showAlertwithTitle:HDLocalized(@"Note") message:HDLocalized(@"NewVersion") tiniColor:[CoreDataUpdateMethod sharedMethod].currentMoodColor delegate:self cancelButtonTitle:@"否" otherButtonTitles:@"是" ,nil].tag = 100102;
}
}

} failure:nil];
}