アプリ内にバージョン チェッカーがあり、現在のバージョン番号がサーバーの plist に保存されています。1.2と言い続けているのになぜか1.21だと確認したら古い値を返し続けてしまう。私のブラウザも同じことをするので、それはある種のキャッシングだと思います。
これを防ぐにはどうすればよいですか?cachePolicy を に設定しましたがNSURLRequestReloadIgnoringCacheData
、1.21 の場合でも 1.2 が返されます
NSURL *url = [NSURL URLWithString:@"https://somewebsite.com/iosapp/CurrentVersion.plist"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.cachePolicy = NSURLRequestReloadIgnoringCacheData;
[request setHTTPMethod:@"GET"];
[AFPropertyListRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/xml"]];
AFPropertyListRequestOperation *operation = [AFPropertyListRequestOperation propertyListRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id propertyList) {
NSString *currentVersion = [[[NSArray alloc] initWithArray:propertyList] objectAtIndex:0];
NSLog(@"Current Version %@", currentVersion);
NSString *deviceVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"];
if (![currentVersion isEqualToString:deviceVersion]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Update Available" message:[NSString stringWithFormat:@"App %@ is available. Please update.", currentVersion] delegate:self cancelButtonTitle:@"Later" otherButtonTitles:@"Update", nil];
[alert show];
}
[self finalCheck];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id propertyList) {
[self finalCheck];
}];