App Store lookup接口返回旧版本 与当前上架版本不一致原因咨询
核心结论
这是苹果iTunes Lookup接口的CDN缓存同步滞后导致的,不属于你的操作问题。
具体说明
苹果的公开元数据查询接口部署了全球边缘缓存节点,当你在App Store Connect后台确认版本已经上架后,仅代表版本已经完成上架流程进入苹果的主数据源,所有边缘缓存节点的元数据同步存在1~24小时的窗口期,地区不同同步速度也有差异。你在版本上架后立即调用接口,大概率命中了还未更新的缓存节点,因此返回了上一个版本1.0.1的信息。
可行的处理方案
- 非紧急场景下等待1~24小时后再次调用接口,缓存节点同步完成后即可正常返回1.0.2的版本号
- 临时验证可以给接口追加随机参数绕过浅层缓存:
http://itunes.apple.com/lookup?bundleId=${bundleID}&_t=${new Date().getTime()},该方案无法100%绕过所有层级的缓存,仅作临时验证用 - 若要确认版本是否真的上架完成,可以直接打开App Store你的应用详情页查看展示的版本号,以此为准即可
业务优化建议
如果你是在应用内通过该接口做新版本更新提示,建议不要在版本刚上架的24小时内做强校验逻辑,可以增加容错:当你后台配置的最新版本号高于接口返回的版本号时,暂时不触发更新提示,待缓存窗口期过后再恢复正常校验逻辑,避免出现版本更新提示延迟的问题。
内容的提问来源于stack exchange,提问作者ThinkAndCode
相关产品推荐
相关产品推荐

