获取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地址中加入时间戳可能不是最好的解决方法,但确实能解决该问题,如果你有更好的解决方法,请不吝赐教!

相关推荐
方白羽2 天前
《被封印的六秒:大厂外包破解 Android 启动流之谜》
android·app·android studio
欧达克4 天前
vibe coding:2 天用 AI 鼓捣一个 APP
flutter·app
Kingexpand_com4 天前
APP开发选型指南:模板与原生定制技术对比及中小企业适配方案
app·app开发·app定制开发·app定制开发公司
私人珍藏库5 天前
[Android] 蓝叠模拟器工具箱v1.1
android·智能手机·app·工具·软件·多功能
私人珍藏库5 天前
【Android】Shizuku升级版-Stellar-提高软件权限
android·app·工具·软件·多功能
私人珍藏库7 天前
【Android】一键硬核锁手机
android·智能手机·app·工具·软件
私人珍藏库7 天前
【Android】GameNative 0.9.0 [特殊字符] 手机畅玩Steam游戏
android·游戏·智能手机·app·工具·软件·多功能
Kingexpand_com8 天前
物联网 App 开发实战(上)—— 协议选型、跨平台开发与设备连接
物联网·app·app定制开发·物联网app开发·物联网app制作
Bigger11 天前
CodeWalkers:让 AI 助手化身桌面宠物,陪你敲代码的赛博伙伴!
前端·app·ai编程
Bigger12 天前
搞了个整活项目:我把 GitHub Copilot 塞进了一个在屏幕上乱跑的桌面宠物里
开源·app·ai编程