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

相关推荐
Bigger13 天前
Tauri(三)—— 先搞定窗口配置
前端·app·客户端
SuperherRo21 天前
基础入门-APP应用&微信小程序&原生态开发&H5+Vue技术&WEB封装打包&反编译抓包点
小程序·app·反编译·原生态·web封装·h5+vue
kim565922 天前
数独游戏app制作拆解(之三)——数字候选区实现
游戏·app·数独·android stufio
什么都什么2 个月前
YonBuilder移动开发鸿蒙版本编译教程
javascript·app·移动开发·harmonyos·yonbuilder·纯血鸿蒙·apicloud
applebomb2 个月前
【uni-app多端】修复stmopjs下plus-websocket无心跳的问题
websocket·uni-app·app·心跳·stomp·plus-websocket
图王大胜2 个月前
Android Framework AMS(17)APP 异常Crash处理流程解读
android·app·异常处理·ams·crash·binderdied·讣告
veteranJayBrother2 个月前
uniapp实现书架
微信小程序·uni-app·app·书架
胡西风_foxww2 个月前
高考相关 APP 案例分享
算法·app·志愿·高考
YesPMP252 个月前
短剧小程序,打造专属短剧观看平台
小程序·app·html5·平台·短剧·影视
飞飞_圆代码3 个月前
iOS安卓渠道归因分析在App推广矩阵中的场景应用
android·ios·app