App版本响应不同

时间:2017-03-16 08:39:46

标签: ios objective-c

在我的应用程序中,我检查AppStore上的版本,显示正确的更新消息。    
问题是我在邮递员和app中调用的网址http://itunes.apple.com/lookup?bundleId=my_app_bundle是这样的:

- (void)checkForNewVersion
{
    appIsLastVersion = YES;

    NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
    NSString *currentAppVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

    NSString *appInfoUrl = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@", bundleIdentifier];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:[NSURL URLWithString:appInfoUrl]];
    [request setHTTPMethod:@"GET"];

    NSURLSession *sesion = [NSURLSession sharedSession];
   NSURLSessionDataTask *task =  [sesion dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {

        NSString *output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

        NSError *e = nil;
        NSData *jsonData = [output dataUsingEncoding:NSUTF8StringEncoding];
        NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&e];

        NSArray *results = [jsonDict objectForKey:@"results"];
        if (results.count > 0) {
            NSString *version = [[[jsonDict objectForKey:@"results"] objectAtIndex:0] objectForKey:@"version"];
            appIsLastVersion = [version isEqualToString:currentAppVersion];

            [self.tableView reloadData];
        }
    }];

    [task resume];
}

我在Postman上收到2个不同的回复:

"currentVersionReleaseDate": "2017-03-15T23:14:08Z"
"version": "2.0.1" 

并在应用

currentVersionReleaseDate = "2017-03-13T07:37:19Z"
version = "2.0.0"

任何解决方案?

1 个答案:

答案 0 :(得分:2)

好的,所以主要原因是数据被缓存了所以我更改了NSURLSession

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
configuration.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;

NSURLSession *sesion = [NSURLSession sessionWithConfiguration:configuration];

source