Ios iTunes查找API在我的应用程序中返回旧数据
我的应用通过比较iTunes查找API返回的本地版本和远程版本来检查更新。但新版本发布后,API仍然返回旧版本 如果我通过浏览器请求,此API将返回新版本(4.9),但在应用程序中返回旧版本(4.8.1) 有人帮忙吗?谢谢Ios iTunes查找API在我的应用程序中返回旧数据,ios,app-store-connect,lookup,itunes-store,Ios,App Store Connect,Lookup,Itunes Store,我的应用通过比较iTunes查找API返回的本地版本和远程版本来检查更新。但新版本发布后,API仍然返回旧版本 如果我通过浏览器请求,此API将返回新版本(4.9),但在应用程序中返回旧版本(4.8.1) 有人帮忙吗?谢谢 - (void)updateAppInfo { dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ //first check iTunes
- (void)updateAppInfo
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//first check iTunes
NSString *iTunesServiceURL = [NSString stringWithFormat:@"https://itunes.apple.com/us/lookup"];
iTunesServiceURL = [iTunesServiceURL stringByAppendingFormat:@"?bundleId=%@", [[NSBundle mainBundle] bundleIdentifier]];
NSLog(@"iRate is checking %@ to retrieve the App Store details...", iTunesServiceURL);
NSError *error = nil;
NSURLResponse *response = nil;
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:iTunesServiceURL] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSInteger statusCode = ((NSHTTPURLResponse *)response).statusCode;
if (data && statusCode == 200)
{
//in case error is garbage...
error = nil;
id json = nil;
if ([NSJSONSerialization class])
{
json = [[NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingOptions)0 error:&error][@"results"] lastObject];
}
else
{
//convert to string
json = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
}
if (!error)
{
self.appStoreId = [self valueForKey:@"trackId" inJSON:json];
self.latestVersion = [self valueForKey:@"version" inJSON:json];
self.releaseNote = [self valueForKey:@"releaseNotes" inJSON:json];
}
}
});
}
并非所有国家/地区都提供所有应用程序。在您的URL中,在美国商店中查找。删除/us/,然后重试
更多详情:我现在也有同样的问题。我和另一个开发者谈过,他得出结论,这可能是CDN的问题。(内容交付网络)
- 当我连接到我们的wifi时,响应已过时
- 当我连接到4G数据时,响应会更新
有关更多信息,请参阅他们的电子邮件回复-我也面临同样的问题。解决这个问题有两个步骤 我使用的是http://itunes.apple.com/lookup?bundleId=“您的BUNDLE ID”不是https 第1步:请确保您使用的是https而不是http,因为它不会给您更新的版本号。 首先,我上传了我的应用程序,版本是1.8.0,然后是1.9.0,然后是1.9.1。当我使用http时,它总是向我显示1.8.0版本,即使app store上的应用程序版本为1.9.1。所以,以后只需使用https即可 步骤2:上传最新版本后,请等待24小时,以便在“您的捆绑包ID”上获取最新版本。我得到的版本是1.9.0,尽管该应用程序在24小时内以1.9.1版本上线。我等了24小时,然后它开始给我正确的版本,然后我可以通过版本检查强制更新我的应用程序。Ok@Yunnosch 当前无法从此url获取JSON格式的应用程序信息 “您的包ID” 因此,我们需要改变这个URL 新URL将显示“您的包id”
这只是在评论中通知新的最新url。我昨天发布了一个新版本,但它在AppStore中仍然不可用。也许您的新版本已准备在iTunesConnect上出售,但尚未在AppStore中提供?数据可能需要一些时间才能反映在所有系统中,我建议您稍等片刻。@rckoenes不,我可以在AppStore中下载新版本,请稍等,12小时就到了。您好!我遇到了完全相同的问题。你能解决吗?我也面临同样的问题。https解决了这个问题吗?完善它与HttpSplese的配合很好。请更清楚地了解您的帖子所提供的额外见解,尤其是与Syed Faizan Ahmed的答案相比。