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

相关推荐
Haha_bj2 天前
Flutter——状态管理 Provider 详解
flutter·app
QING6184 天前
使用ADB分析CPU性能 —— 基础指南
android·前端·app
Haha_bj4 天前
Flutter——List.map()
flutter·app
iOS阿玮5 天前
百款出海社交 App 一夜下架!2026,匿名社交的生死劫怎么破?
uni-app·app·apple
iOS阿玮6 天前
开工第一天,别让AI写的代码触发3.2f封号。
uni-app·app·apple
XLYcmy8 天前
智能体大赛 总结与展望 未来展望
ai·llm·app·prompt·agent·检索·万方数据库
iOS阿玮15 天前
春节提审高峰来袭!App Store 审核时长显著延长。
uni-app·app·apple
熊猫钓鱼>_>17 天前
【开源鸿蒙跨平台开发先锋训练营】Day 12:全场景适配与异常防护——构建高可靠的鸿蒙跨端体验
react native·ui·华为·开源·app·harmonyos·鸿蒙
熊猫钓鱼>_>23 天前
移动端开发技术选型报告:三足鼎立时代的开发者指南(2026年2月)
android·人工智能·ios·app·鸿蒙·cpu·移动端
188_djh1 个月前
# 15_电脑版百度网盘每次登录都显示安全验证,很麻烦,一招解决
windows·app·百度网盘·百度网盘安全验证·baidudisk