获取App在AppStore的版本信息问题

写在前面

在使用"itunes.apple.com/lookup?bund... 请求苹果商店的App信息时,获取到的版本号(version)是以前的版本号,单独使用这个地址从网页中获取到的数据是正确的,但是在项目中使用代码获取到的版本号就落后了一个版本。

上代码

以下是我的请求App信息的代码,此代码请求的数据不是实时的,版本号落后了一个版本,其它信息是正确的:

Swift 复制代码
public class func versionAndDownloadUrl() -> (version: String, downloadUrl: String)? {
    guard let identifier = Bundle.main.object(forInfoDictionaryKey: "CFBundleIdentifier") as? String, 
    let url = URL(string: "http://itunes.apple.com/lookup?bundleId=\(identifier)") 
    else { 
        return nil
    }

    guard let data = try? Data(contentsOf: url),
    let json = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String: Any],
    let results = json["results"] as? [[String: Any]],
    results.count > 0,
    let version = results[0]["version"] as? String,
    let downLoadUrl = results[0]["trackViewUrl"] as? String
    else {
     return nil
    }
    return (version, downLoadUrl)
    }

需要把此处的请求地址加上时间戳才能获取到正确的App信息

正确的请求URL地址

swift 复制代码
let url = URL(string: "http://itunes.apple.com/lookup?bundleId=\(identifier)&date=\(Date.init().timeIntervalSince1970)")

替换上面代码里面的URL地址即可请求到最新的App信息。

资料来自:https://forums.developer.apple.com/forums/thread/125461

在URL地址中加入时间戳可能不是最好的解决方法,但确实能解决该问题,如果你有更好的解决方法,请不吝赐教!

相关推荐
wfh1322 天前
国际 Android WPS Office v18.13 解锁版
app
YesPMP平台官方12 天前
动动手指探索世界,旅游APP如何定制开发?
大数据·小程序·数据分析·app·旅游·软件开发
guanpinkeji15 天前
加油卡APP定制搭建,让加油更便捷!
app·团队开发·软件开发·app开发·加油卡·加油卡app
艾小逗16 天前
uniapp快速入门教程,内容来源于官方文档,仅仅记录快速入门需要了解到的知识点
小程序·uni-app·app·es6
程序者王大川23 天前
【移动端】Flutter与uni-app:全方位对比分析
flutter·uni-app·app·nodejs·全栈·dart·移动端
wusp19941 个月前
基于Python的电商导购APP设计与实现
python·app·电商·导购·设计与实现
YesPMP平台官方1 个月前
掀起社交娱乐新浪潮!AI如何应用到短视频APP?
大数据·人工智能·ai·app·ar·短视频
AUV11071 个月前
推荐一款强大的 macOS 剪贴板增强工具:CleanClip
macos·app·效率工具·实用工具·剪贴板管理
YesPMP官方账号1 个月前
如何满足业主多元需求?开发物业APP,打造智能社区生活
大数据·小程序·app·软件开发·物业
Mendix2 个月前
如何用不到一分钟的时间将Excel电子表格转换为应用程序
低代码·app·excel·mendix·西门子低代码·it·快速开发