Ios iTunes查找API在我的应用程序中返回旧数据

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

我的应用通过比较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
    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(例如),因此没有获得最新的应用程序版本。然后我将http改为https,这对我来说很有用

更新-我们的团队向苹果开发者发送了邮件,询问为什么https工作,http不工作,并得到了苹果团队的回复。他告诉“一般来说,更新的应用程序信息从app Store Connect向公众发布要延迟24小时。”


有关更多信息,请参阅他们的电子邮件回复-

我也面临同样的问题。解决这个问题有两个步骤

我使用的是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的答案相比。